Xamarin.Forms WebView、WKWebViewConfiguration 和发送 "Mobile" Headers
Xamarin.Forms WebView, WKWebViewConfiguration, and Sending "Mobile" Headers
我要回到 Xamarin.Forms,我发现了 iOS 13 Safari 在 iPad 上的一个新行为,称为“Desktop-Class 浏览”。这里有详细介绍:
https://developer.apple.com/videos/play/wwdc2019/203
我的问题是我需要我的 Web 应用程序能够检测是正常的 Web 浏览器正在查看它还是正在被 Xamarin.Forms.WebView
查看。在我的 Web 应用程序中,我曾经能够检测到带有 user-agent 字符串或 X-Requested-With
header 的 Web 视图。但是,如果我的 Web 视图是 运行 on an iPad on iOS 13,它将进入桌面模式,这会产生一个桌面 Safari 用户代理 no X-Requested-With
header,我无法再检测到它是 Web 视图。上述视频中的 2:56 引用了这一点。
在本机 iOS 应用程序中,我显然可以使用 WKWebViewConfiguration
来控制这些 desktop-like 功能:
https://developer.apple.com/documentation/webkit/wkwebviewconfiguration
我认为这在我第一个 link 的视频 9:01 处得到了演示。
如何将 WKWebViewConfiguration
与 Xamarin.Forms 一起使用?我看到 WebKit.WKWebViewConfiguration
class,但如何将它与 Xamarin.Forms.WebView
一起使用?
除非您按照 this article 中的步骤操作,否则您的应用使用的是 UIWebView 而不是 WKWebView
有几种方法可以编辑 WKWebViewConfiguration
:
- 您可以使用“Custom Renderer" to implement your own WKWebView as shown in this Official Xamarin Forms example,并在那里编辑 WKWebViewConfiguration。
- 我还没有尝试过的另一种可能方法 - 您还可以使用步骤 mentioned here 在表单中实现 WKWebView。然后只需编辑 属性.
我要回到 Xamarin.Forms,我发现了 iOS 13 Safari 在 iPad 上的一个新行为,称为“Desktop-Class 浏览”。这里有详细介绍:
https://developer.apple.com/videos/play/wwdc2019/203
我的问题是我需要我的 Web 应用程序能够检测是正常的 Web 浏览器正在查看它还是正在被 Xamarin.Forms.WebView
查看。在我的 Web 应用程序中,我曾经能够检测到带有 user-agent 字符串或 X-Requested-With
header 的 Web 视图。但是,如果我的 Web 视图是 运行 on an iPad on iOS 13,它将进入桌面模式,这会产生一个桌面 Safari 用户代理 no X-Requested-With
header,我无法再检测到它是 Web 视图。上述视频中的 2:56 引用了这一点。
在本机 iOS 应用程序中,我显然可以使用 WKWebViewConfiguration
来控制这些 desktop-like 功能:
https://developer.apple.com/documentation/webkit/wkwebviewconfiguration
我认为这在我第一个 link 的视频 9:01 处得到了演示。
如何将 WKWebViewConfiguration
与 Xamarin.Forms 一起使用?我看到 WebKit.WKWebViewConfiguration
class,但如何将它与 Xamarin.Forms.WebView
一起使用?
除非您按照 this article 中的步骤操作,否则您的应用使用的是 UIWebView 而不是 WKWebView
有几种方法可以编辑 WKWebViewConfiguration
:
- 您可以使用“Custom Renderer" to implement your own WKWebView as shown in this Official Xamarin Forms example,并在那里编辑 WKWebViewConfiguration。
- 我还没有尝试过的另一种可能方法 - 您还可以使用步骤 mentioned here 在表单中实现 WKWebView。然后只需编辑 属性.