【问题标题】:Intercept http request from WebView on Windows Phone 8在 Windows Phone 8 上拦截来自 WebView 的 http 请求
【发布时间】:2014-10-29 21:56:00
【问题描述】:

有没有办法在 Windows Phone 8 上拦截 http 请求?

我有一个 PhoneGap 应用程序,我想拦截 WebView 发出的一些 http 请求并返回我自己的响应。我正在拦截请求 Web 服务器上的资产并返回可在本地生成的资产的调用。

在 Android 中我可以使用 shouldInterceptrequest

在 iOS 我可以使用NSURLProtocol

据我在 Windows Phone 8 上的了解,我可以注册自己的方案来启动我的应用程序,但我无法拦截 http 请求。有什么我遗漏的吗?

【问题讨论】:

    标签: cordova windows-phone-8 webview


    【解决方案1】:

    我认为 Windows Phone 8 不可能。

    不过,Windows Phone 8.1 中有一些新功能:http://blogs.windows.com/buildingapps/2013/07/17/whats-new-in-webview-in-windows-8-1/

    查看部分:自定义 URI 解析

    这篇文章是关于 Windows 8.1 的,但也有适用于 Windows Phone 8.1 的示例代码:http://code.msdn.microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7/(场景 4)。

    【讨论】:

    • 感谢您的回答,不幸的是,据我所知,Window Phone 8.1 中的“自定义 Uri 解析”使用 UriToStreamResolver,这看起来是一种从自定义资产加载整个页面的方法,我最喜欢有兴趣拦截图像请求并返回我自己的图像数据,我不知道如何使用 UriToStreamResolver 来做到这一点。
    • 您只能将手机置于 WiFi 中。然后使用wireshark从另一台计算机(机器-a)窥探http数据包注意:您可能必须在maxhine-a上运行网络代理并将手机指向那里。
    • 抱歉耽搁了。我确认我错了。没有简单的方法可以拦截 WebView 请求。我认为有两种可能性:1)获取网页的HTML内容并手动解析。 2)这个我没有尝试,但是当我在windows 8 webview中遇到本地图像的问题时,我发现链接文章:blog.jsolutions.co.uk/?p=492也许这可能会有所帮助。
    【解决方案2】:

    很好的问题。我还没有创建 phonegap 应用程序,所以我不确定您是否可以在您的页面上引用 WebBrowser 对象。如果可以,您可以使用网络浏览器的“导航”事件对请求进行非常 有限的查看。 NavigatingEventArgs 参数包含请求的 Uri,仅此而已。如果您正在寻找特定的 uri,您可以随时取消导航并将网络浏览器重定向到其他内容。

    【讨论】:

      猜你喜欢
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      相关资源
      最近更新 更多