phonegap の Web ビューの読み込みが完了したかどうかをネイティブ Java (非 phonegap プラグイン) クラスから検出する必要があります。これは可能ですか、それともコードをプラグインとして構造化する必要がありますか?
質問する
343 次
1 に答える
0
私はついに解決策を見つけました(テストされ、機能します)。これはトリッキーな回避策ですが、機能します。
ステップ1: 次のようにMainActivityと同じパッケージに新しいクラスを作成します。
public class MyClass{
private WebView appView;
public MyClass(DroidGap gap, WebView view){
appView = view;
}
public void onLoaded(){
// This will be called when webview loaded
System.out.println("WORKED!!");
}
}
ステップ2: MainActivityのonCreate()の最後に次の行を追加します。
MyClass ai = new MyClass(this, super.appView);
super.appView.addJavascriptInterface(ai, "MyClass");
次のようになります。
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
super.loadUrl("file:///android_asset/www/index.html");
MyClass ai = new MyClass(this, super.appView);
super.appView.addJavascriptInterface(ai, "MyClass");
}
ステップ3: assets / wwwのJavaScriptコードに次を追加します:
document.addEventListener("deviceready", function(){
try{
// Might throw an error but onLoaded() gets called correctly
window.MyClass.onLoaded();
}
catch(e){
console.error(e)
}
});
重要: cordova.jsがindex.htmlに正しく含まれていることを確認してください
これは私のために仕事をしました。
于 2013-03-13T17:28:40.803 に答える