Android與JS混編(js調用java)


項目中需要使用android與js的混編來開發app。

下面就介紹一下吧。

有時候我們需要用js調用native控件,要想實現這個功能,我們需要做的就只有三步:

1.允許webview執行js腳本

2.向js暴露方法

3.訪問網頁

下面是代碼部分:

java:

 1 package com.bdyx.founder.jsnativedemo;
 2 
 3 import android.os.Bundle;
 4 import android.support.v7.app.AppCompatActivity;
 5 import android.webkit.JavascriptInterface;
 6 import android.webkit.WebView;
 7 import android.widget.Toast;
 8 
 9 public class MainActivity extends AppCompatActivity {
10     private WebView webView;
11     @Override
12     protected void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.activity_main);
15         webView = (WebView) findViewById(R.id.wv);
16         setWebView();
17     }
18     private void setWebView(){
19         //允許JavaScript執行
20         webView.getSettings().setJavaScriptEnabled(true);
21         //向js傳遞對象
22         webView.addJavascriptInterface(new ShowToast(),"toastandroid");
23         //不會node的小伙伴可以保存到assets
24         //webView.loadUrl("file:///android_asset/index.html");
25         //訪問網頁
26         webView.loadUrl("http://192.168.253.1:8000/");
27     }
28      public final class ShowToast {
29         //Html調用此方法傳遞數據,注解一定要留着否則會出錯
30         @JavascriptInterface
31         public void show() {
32             Toast.makeText(MainActivity.this,"調用",Toast.LENGTH_LONG).show();
33         }
34     }
35 }

html:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>weifengzz</title>
    <script type="text/javascript">
        function showToast() {
            window.toastandroid.show();
        }
    </script>
</head>
<body>
<h1>本例子是點擊按鈕調用android代碼</h1>
<input type="button" name="" value="點擊調用" onclick="javascript:showToast()"/>

</body>
</html>

 

其實就是這么簡單!

項目已經傳到github上了

https://github.com/weifengzz/JSWidthAndroidNative


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM