H5 Web网页通过JS(JavaScript)脚本调用Android本地原生方法函数

假设现在Android原生代码中有一个本地函数:androidNativeSayHello(),打算提供给外部H5页面使用。
第一步,在Android原生代码中准备好提供给H5网页调用的本地原生函数:

import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.webkit.JavascriptInterface;import android.webkit.WebSettings;import android.webkit.WebView;public class MainActivity extends AppCompatActivity {    private WebView mWebView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mWebView = findViewById(R.id.webview);        mWebView.loadUrl("file:///android_asset/web.html");        WebSettings mWebSettings = mWebView.getSettings();        //启用JavaScript。        mWebSettings.setJavaScriptEnabled(true);        mWebSettings.setUseWideViewPort(true);        mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);        mWebView.addJavascriptInterface(new MyJavaScriptInterface(this), "MyJSInterface");    }    private class MyJavaScriptInterface {        private Context mContext;        public MyJavaScriptInterface(Context context) {            mContext = context;        }        //添加JS注解@JavascriptInterface。该Android原生的本地方法,供H5 Web网页调用。        //该函数的访问属性必须是public。        @JavascriptInterface        public void androidNativeSayHello() {            System.out.println("android native say 'hello , world !'");        }    }}

注意此时在给WebView增加JS接口时候(addJavascriptInterface),定义的名字‘MyJSInterface’,该名字‘MyJSInterface’是H5 Web网页中的JS代码调用的‘句柄’。

第二步,直接在H5的JS中调用。
根据在Android原生代码中定义的句柄‘MyJSInterface’’直接调用Android原生的本地函数:

 

更多相关文章

  1. Android(安卓)bootloader—LK的分析之如何解析boot.img
  2. Android深入浅出之Audio 第一部分 AudioTrack分析
  3. Android中Java与web通信
  4. 【Android进阶】android:configChanges属性总结
  5. Activity的四种启动模式和onNewIntent()
  6. Android(安卓)TV 焦点控制逻辑
  7. android简易网页播放器
  8. 详解 Android(安卓)的 Activity 组件
  9. Android属性动画ObjectAnimator源码简单分析

随机推荐

  1. 这样使用 ThreadLocal 对吗?
  2. 《尚硅谷前端HTML5视频_微信小程序项目实
  3. 【忆臻解读】Andrej Karpathy提到的神经
  4. 尚硅谷大数据视频_韩顺平_Linux视频教程
  5. 《尚硅谷Dubbo视频教程》免费下载
  6. 朋友圈新增“用微视拍摄”功能,腾讯微信微
  7. 大规模邻域搜索(LNS)求解带时间窗的车辆路
  8. 尚硅谷大数据视频_Shell视频教程免费下载
  9. 《尚硅谷韩顺平Go语言核心编程》全套视频
  10. 看图说话,脏读、不可重复读、幻读分别是什