La compréhension de webview Android javascript interface

J'ai créé un android WebView, et injecté javascript interface à l'aide de addJavascriptInterface(mObject, "jsinterface"). Il fonctionne très bien jusqu'à ce que je créer un objet avec le même nom (jsinterface) en JavaScript à l'aide de la new opérateur.

Mon Code Java:

WebView mWebView = findViewById(R.id.myWebView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new MyWebChromeClient((Activity)mContext));
mWebView.addJavascriptInterface(new testClass(), "jsinterface");
mWebView.loadUrl("UrlToLoad");

testClass.java

public class testClass{
    public testClass() {
    }

    @JavascriptInterface
    public String testNativeMethod() {
        return "Java method called!!";
    }
}

Mon Code Java Script

test.js

function test(msg){
    this.message = msg;

    this.testJSMethod = function(){
        return this.message;
    }
}

alert(jsinterface.testNativeMethod()); //prints Java method called!!
jsinterface= new test("JS method called...");
alert(jsinterface.testJSMethod()); //prints JS method called...
alert(jsinterface.testNativeMethod()); //errors "NPMethod called on non- NPObject"

Problème:

Est-ce possible pour un javascript objet pour avoir accès à la fois , j'.e javascript méthodes et natif JAVA méthodes(exposés via javascriptinterface) ? Est-il possible de fixer un bien webview OU de l'exécution de toute JS script pour obtenir ce fait?

OriginalL'auteur Umair Anwar | 2016-04-26