在 WP8 WebBrowser 控件中显示 m.bing.com

2023-12-07

我在 Windows Phone 8 上的 WebBrowser 控件中加载 bing.com 时遇到问题。这样做似乎会启动 WP8 搜索应用程序(与按手机上的搜索按钮相同)。问题是,一旦您单击该搜索应用程序中的结果,它不会带您返回原始应用程序 - 它会转到 IE 显示结果。这对我来说不起作用,并且似乎是网络浏览器行为中的一个巨大缺陷(IMO)。

似乎确实有一些应用程序已经成功地能够在不启动手机搜索应用程序的情况下显示 bing.com - 例如 Image Downloader Free。还有一个,不过我不记得是什么了……

经过一番研究,我发现访问 bing.com 时 WebBrowser_Navigating 事件会被触发 3 次:首先请求用户输入的 URL (www.bing.com),然后将其重定向到http://wp.m.bing.com/?mid=10006,然后它重定向到 bing://home/?mid=10006。

阻止它转发到 Bing 搜索应用程序非常简单,只需将其添加到 Navigating 事件中:

e.Cancel = (e.Uri.Scheme == "bing");

问题是,它只显示 Bing 搜索页面占位符,其中显示“Bing 搜索”,并有一个显示“返回 Bing 搜索”的链接,该链接不执行任何操作(通常会重新启动 Bing 搜索应用程序)。

我有一些想法,但我不确定它们的可行性如何。

  • 在WP8 WebBrowser控件中,是否可以伪造用户代理?
  • 是否可以删除或添加 WebBrowser.Uri.Flags 属性中的一项来影响 Bing.com 处理请求的方式?
  • 如果这些都不起作用,我可以简单地在我的网络服务器上创建一个虚拟页面,将所有 bing.com 请求重定向到它,并让它使用卡编码的用户代理抓取 m.bing.com 首页。不过,我真的很想避免这样做。从最终用户的角度来看,他们永远不会知道,但我只是添加了一个全新的开销、维护和资源层面。

如果您感兴趣,请附上 WebBrowser.Navigating 事件中发生的 3 个请求之间的 EventArgs 对象的差异:

Request 1 (bing.com) -> Request 2 (forwarded to wp.m.bing.com/?mid=10006) enter image description here

Request 2 (forwarded to wp.m.bing.com/?mid=10006) -> Request 3 (forwarded to bing://home/?mid=10006) enter image description here

tl;dr 有谁知道如何阻止 www.bing.com 导致搜索应用程序在我的应用程序的 WebBrowser 控件中启动?

谢谢你!


我不知道是否有更好的方法来处理这个问题,但我找到了解决方案。单击后退按钮时,我还没有让它完美工作,所以如果/当我找到更可靠的解决方案时,我将更新我的答案。我仍然认为这是WP8中WebBrowser控件的一个很大的缺陷。

这是代码:

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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WP8 WebBrowser 控件中显示 m.bing.com 的相关文章

  • Windows Phone 8 上的 PhoneGap 和外部链接

    我正在尝试使用 Phonegap 在 Windows Phone 8 上设置电子商店应用程序 当客户选择要购买的商品时 他应该被带到 Paypal 窗口 在那里他们可以进行购买 此应用程序不需要购物车功能 我希望在手机上的本机浏览器中打开链
  • 无法加载 DLL 'sqlite3' - 对于 Windows Universal Mobile

    我使用带有 SP2 的 Visual Studio 2015 我尝试使用 sqlite 创建 Windows 通用应用程序 我添加了适用于通用 Windows 平台的 SQLite 和 SQLite Net PCl 这是我的简单代码 var
  • 如何添加不同的背景颜色到交替行到列表框项目 Windows Phone 8

    我是 Windows Phone 开发新手 我在列表框中显示数据 对于列表框中的所有行 背景颜色都是相同的 但我想为列表框项目的交替行添加两种不同的颜色 下面是列表视图的代码
  • Visual Studio 2015 预览版中的 Windows Phone 8.0 应用程序打包

    我通过我的学生 Dreamspark 帐户安装了 Visual Studio 2015 Ultimate Preview 我将其安装在更新的 Windows 8 1 之上 工作站 我有 Windows Phone 8 0 应用程序 需要将其
  • 如何在 WP8 地图上创建自动缩放图像

    我正在尝试向地图添加多个图钉 当您缩小到足够大时 图钉就会消失 以使图钉变得如此小 以至于不再渲染它们 我通过以下代码成功实现了这种效果 MapPolygon shape new MapPolygon GeoCoordinateCollec
  • “未加载模块 MyLibrary.dll 的符号”?

    我正在尝试通过制作一个提供有关 Pokemon 信息的基本应用程序来学习 Windows Phone 开发 为此 我创建了一个可移植类库 PokeLib dll 以便它与通用应用程序兼容 我已经通过同一解决方案 测试 中的项目对此进行了测试
  • ContextMenu 的 MenuItem DataContext 返回旧项目

    我在 LongListSelector 中使用 ContextMenu 以便可以删除绑定到 LLS 的列表中的一些项目 我正在遵循最近的指南here http www windowsphonegeek com articles the ne
  • Windows Phone 中的 Azure Active Directory 身份验证失败

    我正在遵循 Windows Phone 身份验证教程将身份验证添加到您的移动服务应用程序 http azure microsoft com en us documentation articles mobile services windo
  • Windows Phone 8.1 - 页面导航

    来自 哪里Windows Phone 8没想到会有这么多的改变Windows Phone 8 1代码 基本上我只是想知道如何进行页面导航 就像您在Windows Phone 8 为此 您应该添加 NavigationService Navi
  • WP8:使用ApplicationBar截屏

    如何使用 ApplicationBar 截屏 我使用的例子来自这个分行 https stackoverflow com questions 5553429 wp7 take screenshot from application 但通过这种
  • Windows Phone 8 检测屏幕解锁

    我的 WP8 应用程序设置为在锁定屏幕下运行 因为即使屏幕锁定时它也需要继续运行 但我希望能够检测用户何时解锁屏幕 我该怎么做 手机解锁时会调用哪些方法 如果有 框架的Unobscured当用户解锁时事件将触发 它也会触发Obscured当
  • 如何检测两个同时触摸?

    Windows Phone 8 中的触摸检测利用了 System Windows Input Touch FrameReported 事件 该事件是开发人员可用的最原始且响应速度最快的触摸事件 您可以像这样使用该事件 public Main
  • WP8 + 将文件上传到 Skydrive

    我正在尝试将一个简单的 cer 文件上传到 SkyDrive 不管LiveConnectClient Method我用了 没有任何反应 没有编译 运行时或其他异常 我的应用程序从未收到LiveOperationResult 我正在使用模拟器
  • 在 Windows Phone 8 中设置广告

    我发现了一些对类似问题的零散回复 主要是 Windows Phone 7 但我想发布一个包含 Windows Phone 8 广告的所有要求的答案 我在 Windows Phone 8 中设置广告时遇到了一些问题 每次运行模拟器时 我都会遇
  • 如何删除 TextBlock 周围的多余空间

    我为我的 TextBlock 设置了以下内容
  • 如何获取 Windows Phone 的设备令牌 ID 以进行推送通知?

    我正在使用 Visual Studio 2012 在手机间隙 移动 jquery 中创建 Windows Phone 8 应用程序 我想从设备获取设备令牌 id 以用于推送通知 谁能指导我如何获取 Windows Phone 8 的设备令牌
  • 通过 SMS(URI 关联)启动应用程序

    是否可以通过短信使用预先注册的 URI 启动应用程序 我成功地测试了通过网站上的链接启动应用程序 例如链接的 href 中的 myapp param test 但在 SMS 方面却没有运气 有没有办法通过短信启动自己的应用程序 感谢和问候
  • Windows Phone SDK8 安装疑难解答

    我在运行 Windows 8 非专业版 的 PC 上使用 Visual Studio 2012 SDK 8 0 我决定购买另一个硬盘在同一台 PC 上安装 Windows Pro 以便在 PC 上运行 Windows Phone 模拟器 P
  • 只允许输入字母

    如何过滤虚拟键盘中的非字母键 以下方法仅适用于拉丁字母 不幸的是 public static bool IsLetter int val return InRange val 65 90 InRange val 97 122 InRange
  • 如何更改 LongListMultiSelector 中的 CheckBox 和 CheckBox 勾号的颜色? WP8

    是否可以更改 LongListMultiSelector 中的复选框和复选框勾选的颜色 我已经尝试过乔治 尼古拉德斯的解决方案 但我无法达到我所需要的 还有其他方法可以做到这一点吗 请问有人可以更详细地解释一下吗 如果它是可能的 提前致谢

随机推荐

  • hapijs joi 验证,验证大于其他属性的总和

    我想验证一个字段 familymemberCount 它应该大于等于其他字段 我尝试了下面的代码 但这不允许将 运算符与 Ref 一起使用 我们如何用其他值的总和进行验证 export const familyMemberRulesSche
  • 使用 XCode 4 生成代码覆盖率数据需要什么

    我一直在尝试使用 XCode 4 2 1 构建 4D502 上概述的步骤为我的应用程序生成代码覆盖率数据http code google com p coverstory wiki UsingCoverstory 我显然错过了一些东西 因为
  • 为什么 OpenCL 工作组大小对 GPU 性能影响巨大?

    我正在 Qualcomm Adreno 630 GPU 上对一个简单的矩阵转置内核进行基准测试 我试图了解不同工作组大小的影响 但令人惊讶的是 我得到了一些我无法解释的有趣结果 这是我的内核代码 kernel void transpose
  • Xamarin:通过 GetManifestResourceStream 加载资源

    我正在开发一个使用 OpenGL OpenTK 的 Xamarin 表单项目 我正在尝试使用 GetManifestResourceStream 加载着色器 无论我做什么 我都会得到空值 代码正在从 Shared 项目运行 着色器位于 io
  • 从 NetCoreApp2.1 调用 OData 服务时出现 System.NotSupportedException

    我已经设置了一个多目标 net4 5 2 netstandard2 类库 允许使用我们的企业 OData 服务之一 为了访问此 OData 服务 我们使用使用以下命令生成的代理类OData v4 客户端代码生成器 v7 5 0 不幸的是 当
  • 从 C# 中的文本文件读取

    我有以下程序 它将发送 输出 信息到文本文件 但现在我想从文本文件中读取 输入 任何建议将不胜感激 我已经注释掉了一些 我认为 我需要做的事情 但我不太确定如何继续 using System Windows Forms using Syst
  • 尝试访问字符指针数组时出现分段错误

    所以我创建了一个处理 char 指针数组的函数 通过使用 运算符 功能 int fetchargs char argv argv 0 0 A 将导致分段错误 我传递了一个字符指针数组 其初始化如下 char argv ARG NUM MAX
  • Android、wifi主动扫描

    我需要在我的 Android 应用程序上进行频繁的 wifi 扫描 我正在尝试基于 wifi RSSI 值构建本地室内定位系统 如果我调用 wifi startScan 我有 onReceive 每 6 秒回调一次 我想默认情况下它是被动扫
  • Struts 2 是否可以作为 OSGi 捆绑包提供?

    我有一个服务器应用程序 由多个 OSGi 包组成 其中一些是我的 一些是第三方的 其中一个捆绑包提供了使用 Struts 的 Web 前端 必要的 Struts 库位于 Web 前端包内 现在我想添加第二个包 它提供另一个 Web 前端 具
  • Session.Abandon() 和 Session.Clear() 有什么区别

    销毁会话和删除其值有什么区别 您能提供一个例子来证明这一点吗 我搜索了这个问题 但没有掌握完整的答案 一些答案是 Session Abandon 破坏会话 Session Clear 只是删除所有值 一位朋友告诉我这样的事 清除会话不会重置
  • 如何生成表示离散均匀分布总和的数字

    Step 1 假设我想生成取值为 1 或 1 的离散均匀随机数 换句话说 我想生成具有以下分布的数字 P X 1 0 5 P X 1 0 5 要生成包含 100 个这些数字的数组 我可以编写以下代码 n 100 DV 1 1 Discret
  • 在 Bash 中删除数组中每个元素的开头和结尾

    我有一个包含 3 个元素的 bash 数组 我需要从所有元素中删除前 X 个字符 并从所有元素中删除最后 Y 个字符 如何才能实现这一点 下面的例子 echo array random path file1 txt random path
  • 在 Pandas 中,如何使用具有相似索引的另一个数据帧中的值来修补缺失值的数据帧?

    From 填充 pandas 数据框中缺失的行值 我有以下数据框 想填写缺失的值 mukey hzdept r hzdepb r sandtotal r silttotal r 425897 0 61 425897 61 152 5 3 4
  • 如果名称和值对 js 中的值为空,则从数组中删除对象

    name mode value 1 name group value name from date value name to date value 2018 10 16 name action value ac filter transa
  • 如何在 underscore.js 模板中使用 if 语句?

    我正在使用 underscore js 模板函数并完成了如下模板
  • 从 Windows 窗体控件中按名称查找控件

    我有一个文本框名称列表 我想按名称查找控件 这怎么可能 Use Control ControlCollection Find TextBox tbx this Controls Find textBox1 true FirstOrDefau
  • 如何在 C 语言编译时打印 sizeof() 的结果?

    如何在 C 语言编译时打印 sizeof 的结果 现在我使用静态断言 基于其他网络资源自制 将 sizeof 结果与各种常量进行比较 虽然这有效 但它远非优雅或快速 我还可以创建变量 结构的实例并查看映射文件 但这也比直接调用 命令 运算符
  • 在奇数/偶数整数列表中查找奇偶校验异常值

    我正在尝试查找并返回奇数整数列表中的单个偶数整数或偶数整数列表中的唯一奇数整数 但是 我的代码可以工作 如果奇数整数列表的长度是偶数 它会返回列表中的第一个数字而不是偶数整数 任何帮助表示赞赏 代码如下 even 2 4 6 8 10 12
  • 多个CPU可以同时写入同一个RAM位置吗?

    机器字大小 或更小 的写入是否已序列化 只需一个本机操作码即可将寄存器内容复制到 RAM 将数据写入 RAM 是原子的 如果两个 CPU 尝试同时写入同一位置 内存控制器将决定写入的某种顺序 当一个 CPU 写入内存时 另一个 CPU 将根
  • 在 WP8 WebBrowser 控件中显示 m.bing.com

    我在 Windows Phone 8 上的 WebBrowser 控件中加载 bing com 时遇到问题 这样做似乎会启动 WP8 搜索应用程序 与按手机上的搜索按钮相同 问题是 一旦您单击该搜索应用程序中的结果 它不会带您返回原始应用程