【问题标题】:Detecting when Android Cordova webview finishes loading检测 Android Cordova webview 何时完成加载
【发布时间】:2026-02-09 08:45:01
【问题描述】:

令人惊讶的是,很难找到对此的深入了解,但我需要检测 Cordova webview 何时完成加载,以便我可以在本机端运行一些初始化代码。此代码对 webview 的 javascript 进行回调,因此 javascript 必须就位并加载(因此需要在 webview 完成加载时得到通知。

我发现的唯一示例是用于检测 WebViewClient 何时完成加载,但我需要知道初始 phonegap webview 何时完成加载。

我是 Android 的新手,来自 iOS 世界,我习惯使用 webviewDidFinishLoading 方法。希望在 Android 的 java 中有类似的方法来处理这个问题。

【问题讨论】:

    标签: android cordova webviewclient


    【解决方案1】:

    您可以探索以下可能的解决方法:

    创建一个Apache Cordova Plugin for Android 并在您的 JavaScript 代码中像这样调用:

    document.addEventListener("deviceready", onDeviceReady, false);
    
    function onDeviceReady() {
       if (isAndroid) {
           cordova.exec(function(winParam) {}, function(error) {}, "service", "webviewDidFinishLoading", []);
       }
    }     
    

    cordova.exec 详细信息here。 isAndroid 详情here.

    您可以在service 插件的webviewDidFinishLoading 方法内添加WebView 启动后需要执行的本机代码。

    【讨论】:

    • 看起来是一种合理的方法。谢谢!