0

I've got a problem with my WebView App. I will start a communication between WebView and App via Javascript. The Error:

E/Web Console﹕ Uncaught Error: Error calling method on NPObject.

The JavascriptInterfaces:

public class MainActivity extends Activity {
    public class WebAppInterface {
        Context mContext;
        WebAppInterface(Context c) {
            mContext = c;
        }
        @JavascriptInterface
        public void launch(String name) {
            Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(name);
            startActivity(LaunchIntent);
        }
        @JavascriptInterface
        public void test() {
            WebView myWebView = (WebView) findViewById(R.id.webview);
            myWebView.loadUrl("javascript: alert('test');");
        }
    }

The WebView settings:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView myWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = myWebView.getSettings();
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.setInitialScale(100);
        myWebView.setWebChromeClient(new WebChromeClient());
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
        myWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
        myWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        myWebView.requestFocus(View.FOCUS_DOWN);
        myWebView.loadUrl("file:///android_asset/index.html");
    }

Anyone who can help?

1 Answers1

0

Did you try to run your code inside WebAppInterface.launch() and WebAppInterface.test() on the UI-Thread: link

Community
  • 1
  • 1
A.D.
  • 1,412
  • 2
  • 19
  • 37