我有一個使用SwiftUI和WebKitView制作的macOS網路瀏覽器,在大多數網站上運行良好,但有些頁面,如
WebView
struct WebView。NSViewRepresentable {
@ObservedObject var webModel。WebStateModel var webModel.
let wkWebview = WKWebView()
func makeNSView(context: Context) -> WKWebView {
if let theUrl = webModel.url {
let request = URLRequest(url: theUrl, cachePolicy: .returnCacheDataElseLoad)
wkWebview.load(request)
}
let preferences = WKPreferences()
preferences.javaScriptEnabled = true ()
return wkWebview
}
func updateNSView(_ nsView: WKWebView, context: Context) {
if let theUrl = webModel.url {
let request = URLRequest(url: theUrl, cachePolicy: .returnCacheDataElseLoad)
nsView.load(request)
}
}
uj5u.com熱心網友回復:
首先你可以使用Safari服務而不是WKWebView,所以你實際上將使用一個兼容的瀏覽器。
除此之外,這取決于網站如何檢查它所加載的瀏覽器。
檢查瀏覽器型別和版本的最原始方法,是查看瀏覽器的用戶代理字串。對于這樣的情況,您可以通過在WKWebView上設定customUserAgent來超越該網站所支持的檢查。但這是一個黑客行為,因為你的WKWebView會假裝是一個不同的瀏覽器。
更復雜的情況不是檢查實際的瀏覽器,而是檢查他們需要的功能。例如,該網站可能會檢查是否啟用了 cookie 或本地存盤。在這種情況下,您只需在您的WKWebView上啟用所需的功能。
在第三種情況下,網站試圖明確阻止將其內容嵌入WKWebView或WebView中。在這種情況下,您必須尊重網站所有者的意愿,不要試圖嵌入該網站。
哪一個是WhatsApp的情況,不太確定。我想你必須進行實驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334312.html
標籤:
