国产探花免费观看_亚洲丰满少妇自慰呻吟_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();      }  }  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中宁县| 黄梅县| 察隅县| 始兴县| 昌乐县| 新泰市| 咸宁市| 都兰县| 兴义市| 若羌县| 岳池县| 云南省| 舞钢市| 大渡口区| 黄浦区| 三门县| 新民市| 六盘水市| 绍兴县| 石景山区| 介休市| 定日县| 莲花县| 横山县| 大庆市| 英山县| 安丘市| 三亚市| 镇坪县| 临潭县| 丰台区| 荔波县| 江川县| 潼南县| 全椒县| 西林县| 昌吉市| 磴口县| 温州市| 大邑县| 获嘉县|