java和js互調 撥打到電話

來源:互聯網
上載者:User

標籤:str   his   file   color   extend   ram   each   sel   state   

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">        <title>Insert title here</title>        <script type="text/javascript">            function show(jsondata){                                var jsonobjs = eval(jsondata);                    var table = document.getElementById("personTable");                    for(var y=0; y<jsonobjs.length; y++){                        var tr = table.insertRow(table.rows.length);                         var td1 = tr.insertCell(0);                        var td2 = tr.insertCell(1);                        td2.align = "center";                        td1.innerHTML = jsonobjs[y].name;                        td2.innerHTML = "<a href=‘javascript:Android.call(\""+ jsonobjs[y].phone+ "\")‘>"+ jsonobjs[y].phone+ "</a>";                    }            }                    </script>    </head>    <body onload="javascript:Android.showcontacts()">    <div align="left">歡迎光臨</div>    <p><img src="http://atguigu.com/images/logo.gif"></p>    <table border="0" width="100%" id="personTable" cellspacing="0">            <tr>                <td width="30%">姓名</td>                <td align="center">電話</td>            </tr>        </table>            </body></html>
public class JsCallJavaCallPhoneActivity extends Activity {    private WebView webView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_js_call_java_video);        webView = (WebView) findViewById(R.id.webview);        WebSettings webSettings = webView.getSettings();        //設定支援javaScript腳步語言        webSettings.setJavaScriptEnabled(true);        //支援雙擊-前提是頁面要支援才顯示//        webSettings.setUseWideViewPort(true);        //支援縮放按鈕-前提是頁面要支援才顯示        webSettings.setBuiltInZoomControls(true);        //設定用戶端-不跳轉到預設瀏覽器中        webView.setWebViewClient(new WebViewClient());        //設定支援js調用java        webView.addJavascriptInterface(new AndroidAndJSInterface(), "Android");        //載入本地資源//        webView.loadUrl("http://atguigu.com/teacher.shtml");        webView.loadUrl("file:///android_asset/JsCallJavaCallPhone.html");//        webView.loadUrl("http://10.0.2.2:8080/assets/JsCallJavaCallPhone.html");    }    class AndroidAndJSInterface {        /**         * 該方法將被js調用,用於載入資料         */        @JavascriptInterface        public void showcontacts() {            // 下面的代碼建議在子線程中調用            String json = "[{\"name\":\"阿福\", \"phone\":\"18600012345\"}]";            // 調用JS中的方法            webView.loadUrl("javascript:show(‘" + json + "‘)");        }        /**         * 撥打到電話         * @param phone         */        @JavascriptInterface        public void call(String phone) {            Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));            if (ActivityCompat.checkSelfPermission(JsCallJavaCallPhoneActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {                return;            }            startActivity(intent);        }    }}

 

java和js互調 撥打到電話

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.