C#防止WP浏览器打开Bing应用程序

时间:2014-01-10 11:42:17

标签: c# windows-phone-8 windows-phone webbrowser-control bing

我正在尝试制作Windows Phone 8网络浏览器类型的应用程序但我的问题是尝试使用bing.com显示搜索结果总是会打开Bing搜索应用程序。现在这对本机浏览器的用户非常有用,因为Bing应用程序然后在Internet Explorer中打开链接,但遗憾的是这在第三方浏览器上非常无用。有没有办法禁用它,并允许用户在我的应用程序中使用Bing或他们将被迫使用谷歌。

2 个答案:

答案 0 :(得分:1)

有一种解决方法可以通过检查它是否在导航事件处理程序中搜索bing,然后导航到具有自定义用户代理标头的同一网址来禁止此行为。

这是代码

private bool _customHeaderRequest = false;

private void MainBrowser_Navigating(object sender, NavigatingEventArgs e)
{
    string host = e.Uri.Host.ToLowerInvariant().Trim();

    if ((host == "bing.com" || host.EndsWith(".bing.com")) && !_customHeaderRequest)
    {
        e.Cancel = true;

        Dispatcher.BeginInvoke(() =>
            MainBrowser.Navigate(e.Uri, null,
                "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710)\r\n"));

        _customHeaderRequest = true;
        return;
    }

    _customHeaderRequest = false;
}

private void MainBrowser_Navigated(object sender, NavigationEventArgs e)
{
    _customHeaderRequest = false;
}

参考:https://stackoverflow.com/a/20988333/1335882

答案 1 :(得分:0)

为什么不在您的网络应用中使用Bing Maps V7 JavaScript控件。这比将用户发送到bing.com/maps消费者站点要好得多。这也可以为您提供更多功能和自定义功能。您可以在此处找到有关此API的文档:http://msdn.microsoft.com/en-us/library/gg427610.aspx

相关问题