Swift中用WKWebView打开WhatsApp Web并切换移动端视图的方法
解决WKWebView打开WhatsApp Web显示桌面版的问题
问题出在你设置的自定义UserAgent上:你用了Mac桌面端的浏览器标识,WhatsApp Web会根据这个标识判断设备类型,直接返回桌面版页面,忽略preferredContentMode = .mobile的设置。
修复步骤
- 移除Mac端的
customUserAgent配置,让WKWebView使用默认的移动端UserAgent - 确保WebView的配置(比如
preferredContentMode)在加载请求前完成设置
修改后的代码
// 先完成WebView的配置 webView.navigationDelegate = self webView.configuration.defaultWebpagePreferences.preferredContentMode = .mobile webView.allowsBackForwardNavigationGestures = true // 再加载WhatsApp Web let url = URL(string: "https://web.whatsapp.com/")! webView.load(URLRequest(url: url))
可选:自定义移动端UserAgent
如果需要自定义UserAgent,要使用移动端的标识,比如iPhone的示例:
let userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1" webView.customUserAgent = userAgent
内容的提问来源于stack exchange,提问作者SwiftTry
相关产品推荐
相关产品推荐

