我有一个网页,我想使用WKWebView在iOS应用程序中显示它。 我的ViewController.swift的代码:
import UIKit
import WebKit
import os.log
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func loadView(){
webView = WKWebView()
webView.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://example.com")!
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if navigationAction.navigationType == WKNavigationType.linkActivated{
os_log("Link was clicked: %@", log: OSLog.default, type: .debug, navigationAction.request.url?.absoluteString ?? "")
webView.load(navigationAction.request)
}
decisionHandler(.allow)
}
}
页面上的所有JavaScript都可以正常工作,但Google map除外,后者放置在模式div中并显示在按钮上。因此,当我按下按钮显示Google地图时,我只会看到空白区域。看来Google Map JS API函数“ initMap()”不起作用:
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>
该地图可在浏览器和Android的WebView中使用。我还在Info.plist中添加了“隐私-使用中的位置使用情况说明”,并尝试使用
webView.configuration.preferences.javaScriptEnabled = true
结果是一样的 Screenshot