2

phonegap-android アプリケーションを構築しています。フローの一部として、javascriptInterface を使用して JavaScript 側からアクティビティを呼び出しています。

これは次のように見えます

public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        super.init();
        appView.addJavascriptInterface(this, "Android");

        super.loadUrl(Config.getStartUrl());


}

ここで、アクティビティからのデータをコルドバ Web ビューに送り返したいと考えています。

呼び出したい関数を JavaScript ファイルに定義しました

function jsi_getData(data) {
     console.log("JSI GET IMAGE INVOKED ON JAVASCRIPT SIDE");
     alert(data);
 }

私のAndroidコードでは、onActivityResult内で、このjavascript関数を呼び出しています

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       if(requestCode == 12321){
             //do some work

           Log.i("MAIN_ACTIVITY", "***************  received data"+ data);
            appView.sendJavascript("javascript:jsi_getImage("+data+");");

        }
    }

これにより、次のエラーが表示されます

09-16 18:18:27.211: I/Web Console(28991): processMessage failed: Message: Jjavascript:jsi_getData('data');:1034
09-16 18:18:27.211: I/Web Console(28991): processMessage failed: Error: ReferenceError: jsi_getImage is not defined:1035
09-16 18:18:27.211: I/Web Console(28991): processMessage failed: Stack: ReferenceError: jsi_getImage is not defined
09-16 18:18:27.211: I/Web Console(28991):     at eval (eval at processMessage (file:///android_asset/www/js/libs/cordova.js:996:26), <anonymous>:1:1)
09-16 18:18:27.211: I/Web Console(28991):     at processMessage (file:///android_asset/www/js/libs/cordova.js:996:13)
09-16 18:18:27.211: I/Web Console(28991):     at Function.androidExec.processMessages (file:///android_asset/www/js/libs/cordova.js:1063:13)
09-16 18:18:27.211: I/Web Console(28991):     at pollOnce (file:///android_asset/www/js/libs/cordova.js:933:17):1036
09-16 18:18:27.481: I/Adreno200-EGLSUB(28991): <ConfigWindowMatch:2087>: Format RGBA_8888.

私も aappView.sendJavascript()をに変更しましたがthis.sendJavascript()、まだ同じエラーがあります。これは非常に役に立ちます。

ありがとう

4

1 に答える 1