2

メトロアプリケーション内のインターネットページに移動する必要があります。私のURLは(サンプル)'http://www.foo.com/#/foo'です。問題は、LaunchUriAsyncがURLを「http://www.foo.com」にカットすることです。

try
{
    Uri uri = new Uri(item.UriCode); 
    await Launcher.LaunchUriAsync(uri);
}
catch (Exception exception)
{
    //TODO
}

私はどこが間違っていますか?よろしく。

アップデート :

uri= http: //www.foo.com/#/fooと正確に言います。したがって、問題はLaunchUriAsyncに起因します。

4

2 に答える 2

0

私はあなたが言及したURIをハードコーディングするだけの同じコードで試しました:以下のコードをチェックしてください:

    /// <summary>
    /// Invoked when this page is about to be displayed in a Frame.
    /// </summary>
    /// <param name="e">Event data that describes how this page was reached.  The Parameter
    /// property is typically used to configure the page.</param>
    protected async override void OnNavigatedTo(NavigationEventArgs e)
    {
        try
        {
            Uri uri = new Uri("http://www.foo.com/#/foo");
            await Launcher.LaunchUriAsync(uri);
        }
        catch (Exception exception)
        {
            //TODO
        }
    }

出力を以下に示します

それぞれのURLを使用したランチャーテスト

他にも問題があると思います。item.UriCode回線に付いている可能性がありますのでご確認ください。

于 2012-12-20T10:57:58.683 に答える
0

あなたの例から実際に何が間違っているのかを診断するのは難しいと思います。

Webページ内のアンカーに移動しようとしているようですが、構文が正しくないか、存在しないアンカーを指しています。ただし、リンクされたページの例には、ナビゲート可能なアンカーが含まれていないようです。

これが実際に達成しようとしていることであると仮定して、次の例を試してください。ナビゲーションが期待どおりに機能することがわかります。

Launcher.LaunchUriAsync(new Uri("http://www.hypergurl.com/anchors.html#bottom"));

これが達成しようとしていることではない場合は#、URI内の文字の存在がIEによってアンカー参照として解釈されていることをお勧めします。そのため、必要な結果が得られません。

于 2012-12-20T11:07:25.157 に答える