我正在为我的PWA /移动网站的网页加载指示器实施动画gif。我使用Android可以正常工作:
// None iOS devices.
$(function () {
$(window).on('beforeunload', function () {
$('#indicator').show();
});
});
这不适用于iOS,我知道可以使用“ pagehide”事件,但它也不起作用:
window.addEventListener('pagehide', event => {
$('#indicator').show();
}, false);
任何人都可以告诉我我缺少什么,或者可以使用iOS设备对此提供简单的解决方案吗?
要监听js事件:
// 1
let contentController = WKUserContentController();
contentController.add(self, name: "event1")
contentController.add(self, name: "event2")
// 2
let config = WKWebViewConfiguration()
config.userContentController = contentController
let webView = WKWebView(frame: view.frame, configuration: config)
webView.navigationDelegate = self
webView.uiDelegate = self
和在webKit委托中:
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
switch message.name {
case "event2":
// do some stuff
case "event2":
// do some stuff
default:
break
}
}
如果要从WebKit调用JS函数:
self.webView.evaluateJavaScript("jsFunction('\(parameter1),\(parameter2),\(parameter3)')") { [weak self] _, error in
guard let self = self else { return }
if let error = error {
print("some error on calling jsFunction: \(error)")
return
}
// jsFunction called successfully
}