iOS的JS页面加载指示器

问题描述 投票:0回答:1

我正在为我的PWA /移动网站的网页加载指示器实施动画gif。我使用Android可以正常工作:

      // None iOS devices.
      $(function () {
        $(window).on('beforeunload', function () {
        $('#indicator').show();
        });
      });

这不适用于iOS,我知道可以使用“ pagehide”事件,但它也不起作用:

      window.addEventListener('pagehide', event => {
        $('#indicator').show();
      }, false);

任何人都可以告诉我我缺少什么,或者可以使用iOS设备对此提供简单的解决方案吗?

jquery ios indicator busyindicator
1个回答
-1
投票

要监听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
    }
© www.soinside.com 2019 - 2024. All rights reserved.