【问题标题】:want to open Link in external browser of WP7想在 WP7 的外部浏览器中打开链接
【发布时间】:2011-06-14 08:12:39
【问题描述】:

架构是这样的:
单击按钮后,将打开一个 HTML 页面,其中包含一个链接。单击链接时,我想在 WP7 的外部(默认)浏览器中打开它,以便应用程序关闭并在外部打开链接。我该如何实现呢?
在 xaml 文件中添加了此控件:

<phone:WebBrowser Name="browser" Margin="0,78,0,0" />

点击按钮:

   private void Information_Loaded(Object sender,RoutedEventArgs e)
   {
       Assembly assembly = Assembly.GetExecutingAssembly();

       using (Stream stream = assembly.GetManifestResourceStream("index_en.html"))
       {
           using (StreamReader reader = new StreamReader(stream))
           {
               string html = reader.ReadToEnd();

               browser.NavigateToString(html);                   
           }
       }

现在 index_en.html 有一个可以在外部浏览器中打开的链接。

【问题讨论】:

    标签: c# windows-phone-7 hyperlink browser


    【解决方案1】:

    您可以使用WebBrowserTask 启动浏览器。

    我发现你需要转义你传递给它的 URL :(

    【讨论】:

    • 如何通过跳过来实现?
    • @Shaireen:通过跳过实现什么?跳过什么?
    • 对不起,我没有说清楚。实际上在使用 Web 浏览器任务时,我需要将一个 url 传递给它。所以这个 url 应该是 html 文件的名称?还是打开的链接?
    • @Shaireen:这是要打开的地址。您在浏览器地址栏中输入的内容。
    • 实际上我有一个 Html 文件,单击按钮即可打开。该文件具有要在外部浏览器中打开的地址。现在我想捕获单击该链接,只有这样我才能在外部打开它?怎么做?
    【解决方案2】:

    通常,您会使用&lt;a&gt; 标记上的Target 属性来执行此操作。但是,在WP7(至少在模拟器中),这不起作用。

    您可以做的是使用Navigating 事件进行拦截,如下所示:

    void WebBrowser1_Navigating(object sender, NavigatingEventArgs e)
    {
        if (IsSupposedToOpenInPhoneBrowser(e.Uri))
        {
            e.Cancel = true;
            WebBrowserTask task = new WebBrowserTask();
            task.URL = e.Uri.ToString();
            task.Show();
        }
    }
    

    【讨论】:

    • "IsSupposedToOpenInPhoneBrowser(e.Uri)" 属性未找到。它表示什么?
    • 如果您想在手机浏览器中打开 Uris 之前对其进行验证/过滤,这只是一个虚假的方法占位符......您可以不用它。
    【解决方案3】:

    你可以使用类似的东西

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        WebBrowserTask webBrowserTask = new WebBrowserTask();
        webBrowserTask.Uri = new Uri("http://www.someUrl.com");
        webBrowserTask.Show(); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-12
      • 2018-02-11
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2015-12-09
      • 2012-09-24
      相关资源
      最近更新 更多