国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

安卓與JS通信相互調用

2019-11-09 16:29:44
字體:
來源:轉載
供稿:網友

最近做Android項目中遇到要在webview中做與js交互相關的東東,涉及到js中調用android本地的方法,于是查了資料整理了一下android和js互相調用的過程。如下demo,demo的主要實現過程如下:通過加載本地的html文件(里面有js腳本),實現android本地方法和js中的交互。

第一步:

mainfest.xml中加入網絡權限

<uses-permission android:name="android.permission.INTERNET" />  第二步:

加載本地寫好的html文件(定義好js中提供給android調用的方法 funFromjs(),和android提供給js調用的對象接口fun1FromAndroid(String name)),放在 assets目錄下。

<body>      <a>js中調用本地方法</a>      <script>            function funFromjs(){          document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";      }      var aTag = document.getElementsByTagName('a')[0];      aTag.addEventListener('click', function(){          //調用android本地方法          myObj.fun1FromAndroid("調用android本地方法fun1FromAndroid(String name)!!");          return false;      }, false);      </script>      <p></p>      <div id="helloweb">         </div>  </body>  第三步:

實現android工程與js交互的相關代碼

android主題代碼:

@SupPRessLint({ "javascriptInterface", "SetJavascriptEnabled" })     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         //初始化         initViews();           //設置編碼         mWebView.getSettings().setDefaultTextEncodingName("utf-8");         //支持js         mWebView.getSettings().setJavaScriptEnabled(true);         //設置背景顏色 透明         mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));         //設置本地調用對象及其接口         mWebView.addJavascriptInterface(new JavaScriptObject(mContext), "myObj");         //載入js         mWebView.loadUrl("file:///android_asset/test.html");                  //點擊調用js中方法         mBtn1.setOnClickListener(new View.OnClickListener() {               @Override             public void onClick(View v) {                 mWebView.loadUrl("javascript:funFromjs()");                 Toast.makeText(mContext, "調用javascript:funFromjs()", Toast.LENGTH_LONG).show();             }         });       }  js調用的android對象方法定義

public class JavaScriptObject {      Context mContxt;      @JavascriptInterface //sdk17版本以上加上注解      public JavaScriptObject(Context mContxt) {          this.mContxt = mContxt;      }        public void fun1FromAndroid(String name) {          Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();      }        public void fun2(String name) {          Toast.makeText(mContxt, "調用fun2:" + name, Toast.LENGTH_SHORT).show();      }  }  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙川县| 黄梅县| 葵青区| 隆德县| 乌兰浩特市| 阿城市| 河间市| 同心县| 阿合奇县| 孟津县| 新宁县| 永顺县| 察隅县| 黄平县| 延吉市| 姜堰市| 齐齐哈尔市| 南康市| 德昌县| 长岭县| 苗栗市| 界首市| 纳雍县| 介休市| 海南省| 汪清县| 当涂县| 搜索| 清苑县| 银川市| 宁国市| 浦江县| 北流市| 锡林浩特市| 陈巴尔虎旗| 北京市| 介休市| 莱阳市| 巴林右旗| 留坝县| 邳州市|