Call Android methods from JavaScript

前端 未结 4 627
不知归路
不知归路 2020-12-04 10:04

I searched, but I didn\'t find an answer. I\'m developing an Android app based on webview, using HTML5 and JavaScript. Can I call an Android method, like makeToast()

4条回答
  •  广开言路
    2020-12-04 11:04

    After creating your Main Activity code you need to create your Javascript code and call WebviewInterface from that, Let's see the example:

    public class MainActivity extends AppCompatActivity {
    
    String TAG = "MainActivity";
    Context context;
    WebView mWebView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;
    
        mWebView = (WebView) findViewById(R.id.webview);
        initWebView();
    
        String ENROLLMENT_URL = "file:///android_asset/about_page.html";
        mWebView.loadUrl(ENROLLMENT_URL);
    
    }
    
    @SuppressLint({ "SetJavaScriptEnabled" })
    private void initWebView() {
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.setWebChromeClient(new WebChromeClient());
        mWebView.addJavascriptInterface(new WebviewInterface(), "Interface");
    }
    
    public class WebviewInterface {
        @JavascriptInterface
        public void javaMehod(String val) {
            Log.i(TAG, val);
            Toast.makeText(context, val, Toast.LENGTH_SHORT).show();
        }
    }
    }
    

    activity_main.xml

    
    
    
    
    
    
    
    

    Look at this link to see full example https://www.legendblogs.com/blog/how-to-call-native-java-methods-from-webview-javascript/121764

提交回复
热议问题