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

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

安卓與JS通信相互調用

2019-11-09 17:33:23
字體:
來源:轉載
供稿:網友

最近做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();      }  }  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万宁市| 雷波县| 禹州市| 准格尔旗| 都安| 永善县| 眉山市| 大埔县| 临安市| 兰溪市| 正镶白旗| 淮安市| 汝阳县| 香港 | 上虞市| 江西省| 永修县| 潜山县| 施秉县| 怀柔区| 桂阳县| 张北县| 铅山县| 永清县| 西城区| 普陀区| 城口县| 黄大仙区| 西昌市| 张掖市| 普陀区| 杭锦旗| 贵定县| 红河县| 信丰县| 河西区| 西昌市| 宣化县| 江门市| 四子王旗| 普兰店市|