在UWP中设置自定义WebView标头

毗湿奴

这似乎是其他类似问题的重复,但它们是旧线程,并非特定于Windows UWP应用。

我无法在WebView中设置自定义标头,因此WebView中已加载的URL可以为我工作。

我见过很多论坛都提供类似的解决方案,例如将HttpClient / WebRequest与标头一起使用,但是这种方法不起作用,因为我使用的是用于重定向的网址使用Javascript,在重定向之前,它需要少量自定义标头才能正确加载。

而且WebView.NavigateWithHttpRequestMessage不太适合,因为它将回发,并且我需要每个请求的标头,包括Web View中的javascript重定向URL

我可以使用Renderers在Xamarin.Droid项目中设置自定义标头,但找不到UWP的任何解决方案Windows.UI.Xaml.Controls.WebView

陈富兰-MSFT

在通用Windows 10平台上,该WebView.NavigateWithHttpRequestMessage方法是正确的方法。

一种。我需要每个请求的标头,包括Web视图中的javascript重定向的URL。

b。这没有解决我的问题,因为设置标头后OnWebViewNavigationStarting多次调用了该方法,并且应用程序自动崩溃,并出现System.StackOverflowException错误

这是因为如果我们在事件中进行导航,则将发生无限导航NavigationStarting我们应该通过将属性设置true取消此事件的处理程序中的导航WebViewNavigationStartingEventArgs.Cancel

我们需要NavigationStarting仔细添加/删除事件处理程序

代码示例:

    private void NavigateWithHeader(Uri uri)
    {
        var requestMsg = new Windows.Web.Http.HttpRequestMessage(HttpMethod.Get, uri);
        requestMsg.Headers.Add("User-Name", "Franklin Chen");
        wb.NavigateWithHttpRequestMessage(requestMsg);

        wb.NavigationStarting += Wb_NavigationStarting;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        NavigateWithHeader(new Uri("http://openszone.com/RedirectPage.html"));
    }

    private void Wb_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
    {
        wb.NavigationStarting -= Wb_NavigationStarting;
        args.Cancel = true;//cancel navigation in a handler for this event by setting the WebViewNavigationStartingEventArgs.Cancel property to true
        NavigateWithHeader(args.Uri);
    }

屏幕截图是Fiddler中的日志信息,第二个红色矩形中的请求记录包括自定义标头:

在此处输入图片说明

我在这里共享了我的UWP示例,您可以轻松地将其集成到Xamarin UWP应用中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在react-native中为webview请求设置自定义标头

来自分类Dev

通过在ShouldInterceptRequest中向WebResourceRequest的标头添加标头来向WebView添加自定义标头不起作用

来自分类Dev

使用HttpURLConnection设置自定义标头

来自分类Dev

如何使用$ resource操作设置自定义标头?

来自分类Dev

使用IHttpActionResult时如何设置自定义标头?

来自分类Dev

Dropwizard-设置自定义的variable标头

来自分类Dev

$ _SERVER变量未设置我的自定义标头

来自分类Dev

如何使用phpmailer设置自定义标头

来自分类Dev

如何使用PJAX设置自定义xhr标头?

来自分类Dev

设置和检索自定义HTTP标头

来自分类Dev

Dropwizard-设置自定义的variable标头

来自分类Dev

设置和检索自定义HTTP标头

来自分类Dev

如何设置webgrid标头的自定义字体颜色?

来自分类Dev

在.NET 4.5中设置Websocket握手的自定义标头

来自分类Dev

如何在curl配置文件中设置自定义标头

来自分类Dev

如何在Angular2中设置全局自定义标头?

来自分类Dev

EventSource连接中的自定义标头

来自分类Dev

WPF TabItem代码中的自定义标头?

来自分类Dev

在Ruby on Rails中访问自定义标头变量

来自分类Dev

在Safari中获取自定义标头的问题

来自分类Dev

Python中的Selenium PhantomJS自定义标头

来自分类Dev

从请求中剥离的CORS自定义标头

来自分类Dev

在JSON中添加自定义标头

来自分类Dev

在Ruby on Rails中访问自定义标头变量

来自分类Dev

RestKit中每个请求的自定义标头

来自分类Dev

从原型中添加自定义标头

来自分类Dev

在request.servervariables()中添加自定义标头

来自分类Dev

自定义CollectionView标头在滚动过程中消失(自定义UICollectionFlowLayout)

来自分类Dev

的AFNetworking 2.0自定义标头

Related 相关文章

  1. 1

    如何在react-native中为webview请求设置自定义标头

  2. 2

    通过在ShouldInterceptRequest中向WebResourceRequest的标头添加标头来向WebView添加自定义标头不起作用

  3. 3

    使用HttpURLConnection设置自定义标头

  4. 4

    如何使用$ resource操作设置自定义标头?

  5. 5

    使用IHttpActionResult时如何设置自定义标头?

  6. 6

    Dropwizard-设置自定义的variable标头

  7. 7

    $ _SERVER变量未设置我的自定义标头

  8. 8

    如何使用phpmailer设置自定义标头

  9. 9

    如何使用PJAX设置自定义xhr标头?

  10. 10

    设置和检索自定义HTTP标头

  11. 11

    Dropwizard-设置自定义的variable标头

  12. 12

    设置和检索自定义HTTP标头

  13. 13

    如何设置webgrid标头的自定义字体颜色?

  14. 14

    在.NET 4.5中设置Websocket握手的自定义标头

  15. 15

    如何在curl配置文件中设置自定义标头

  16. 16

    如何在Angular2中设置全局自定义标头?

  17. 17

    EventSource连接中的自定义标头

  18. 18

    WPF TabItem代码中的自定义标头?

  19. 19

    在Ruby on Rails中访问自定义标头变量

  20. 20

    在Safari中获取自定义标头的问题

  21. 21

    Python中的Selenium PhantomJS自定义标头

  22. 22

    从请求中剥离的CORS自定义标头

  23. 23

    在JSON中添加自定义标头

  24. 24

    在Ruby on Rails中访问自定义标头变量

  25. 25

    RestKit中每个请求的自定义标头

  26. 26

    从原型中添加自定义标头

  27. 27

    在request.servervariables()中添加自定义标头

  28. 28

    自定义CollectionView标头在滚动过程中消失(自定义UICollectionFlowLayout)

  29. 29

    的AFNetworking 2.0自定义标头

热门标签

归档