WKWebView和Safari有什么区别?

9
我正在创建一个特殊的应用程序,其中我正在使用WKWebView。但是我有一个问题... WKWebView的行为与Safari(当然是iOS版本的Safari)不同。
如果我在Safari中访问adidas.com/yeezy,就没有问题。但是当我在WKWebView中访问这个网站时,它会说浏览器不够现代化。
我真的需要解决这个问题,否则我的应用程序无法正常工作。
有人有解决办法使WKWebView变得“现代”吗?
谢谢!
2个回答

5
我认为这只是配置问题。请查看WKPreferences
我猜,如果你启用所有可以启用的内容,你会找到所需的功能。我将检查adidas以查看是否需要特殊的东西。
编辑: 第二种选择,您可以欺骗网站,使其认为您是不同的浏览器。 只需设置customUserAgent,请参见此处
您可以在Mac上看到一个可行的示例。
1)打开Safari
2)开发
3)用户代理
4)其他
将其复制并粘贴到您的代码中,祝你好运!
以下面的值为例:
Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_6)AppleWebKit/604.3.5(KHTML, like Gecko)Version/11.0.1 Safari/604.3.5
编辑:Swift 5和XCode 10.2.1示例 感谢G先生。
testWebView.customUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1"

没有尝试第一种选项,但第二种选项解决了问题,非常感谢! - MaximVW
你如何设置customUserAgent属性?以及你如何使用WKPreferences更改配置? - iPhoneDeveloper
@iPhoneDeveloper customUserAgent是WKWebView的一个属性,只需将其设置为您喜欢的浏览器即可。在Google中搜索“用户代理示例”以找到使网站认为您的浏览器是正确的值。 - Yitzchak
1
这是在Swift 5,Xcode 10.2.1中设置的方式:testWebView.customUserAgent = "Mozilla/5.0(iPhone; CPU iPhone OS 12_3_1 like Mac OS X)AppleWebKit/605.1.15(KHTML, like Gecko)Version/12.1.1 Mobile/15E148 Safari/604.1" - Mr. G

1
我在研究类似问题时发现了这个问题:我的网站在Safari中运行良好,但在iOS Chrome中却无法正常工作。
如果您访问http://whatsmyuseragent.org,您可能会注意到您的WKWebView正在使用不同的Webkit版本(60x.x.x)而非Safari。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接