Corodva,Javascript和HTML5开发人员。
我需要在任何时候拦截Windows Phone 8.0中的WebBrowser组件发出的所有get请求,并能够查看它请求的资源。举一个“全部”的例子,这就是我的意思。
我有一个简单的应用程序,其中包含一个cordova(带有装饰器的WebBrowser控件,允许从本地存储中检索XHRrequest)视图,并导航到index.html文件。
index.html仅包含正文中的以下内容
<img src="logo.png" />
此文件由Web浏览器加载和显示,但是我无法通过Web浏览器向Windows Phone发出可拦截的请求。该文件只是神奇地出现在浏览器中。我知道cordova会覆盖所有XHR请求以换出本地文件。 XHRHelper.cs中的任何方法都没有被logo.png请求命中。这是我尝试过的所有内容,所以我们都可以在同一页面上。
如果我没有对这个问题进行任何研究,我不会问这个问题。一些JavaScript开发人员表示他们不认为这可能来自应用程序内部,许多C ++开发人员说我应该查看WebBrowser控件的本机代码实现,找出它扩展的接口并抓住它不知何故延伸。我将在明天整天尝试这样做,但是如果(希望)有一种简单的方法可以做到这一点,我想不要过分夸大这种情况。
我的下一步是使用fiddler或charles之类的工具来监控通过代理的所有数据包。如果我可以通过任何这些工具看到对本地文件的请求,那么必须有一种方法可以在代码中拦截这些请求。如果成功,我将尝试在运行时设置本地代理并通过我的文件处理程序重定向。
我与一些iOS开发人员交谈,他们使用了NSURLProtocol,您只需要设置,然后就可以监控所有流量(Lucky)。 Windows Phone 8.0有这样的东西吗?有没有人有关于如何为Windows Phone 8.0实现此功能的建议?有什么方法可以拦截来自html5应用程序的所有请求。任何方式都没问题,我相信我能够实施任何建议,并提供反馈,如果它不起作用。最大的问题是,如果它甚至可能。
任何反馈都将受到赞赏,任何建议都将得到贯彻。我将就该建议提供反馈。
先谢谢你,我知道这里有一些严肃的Code Ninjas会给我一百万个选项:)
答案 0 :(得分:0)
我找到了一个解决这个问题的非常简单的方法。由于Mobile IE10不提供拦截网页请求的功能,因此我离开了该路径并选择不拦截请求而是重定向它。
我是通过在手机上设置套接字服务器并从localhost请求HTML5应用程序中的资源来实现的。这是一个例子:
我在index.html中使用的文件,如下所示
<img src="logo.png" />
我改为
<img src="http://localhost:99/logo.png" />
这样,您就可以在套接字服务器中触发Process请求事件,您可以在其中适当地处理资产请求。您可以使用logo.png并使用套接字服务器中的简单映射返回具有不同名称的图像,这是我需要做的。
我希望这可以帮助处理相同问题的人:)