LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

          1. Android中Java和JavaScript交互

            admin
            2014年11月24日 21:52 本文熱度 6259
            Android提供了一個很強大的WebView控件用來處理Web網頁,而在網頁中,JavaScript又是一個很舉足輕重的腳本。本文將介紹如何實現Java代碼和Javascript代碼的相互調用。

            如何實現


            實現Java和js交互十分便捷。通常只需要以下幾步。



            • WebView開啟JavaScript腳本執行

            • WebView設置供JavaScript調用的交互接口。

            • 客戶端和網頁端編寫調用對方的代碼。

            本例代碼


            為了便于講解,先貼出全部代碼


            Java代碼

            lineos:false





            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            21
            22
            23
            24
            25
            26
            27
            28
            29
            30
            31
            32
            33
            34
            35
            36
            37
            38
            39
            40
            41
            42
            43
            44
            45
            46
            47
            48
            49
            50
            51
            52
            53
            54
            55
            56
            57
            58
            59
            60
            61
            62
            63
            64
            package com.example.javajsinteractiondemo;

            import android.annotation.SuppressLint;
            import android.app.Activity;
            import android.os.Bundle;
            import android.util.Log;
            import android.view.Menu;
            import android.webkit.JavascriptInterface;
            import android.webkit.WebChromeClient;
            import android.webkit.WebSettings;
            import android.webkit.WebView;
            import android.webkit.WebViewClient;
            import android.widget.Toast;

            public class MainActivity extends Activity {
            private static final String LOGTAG = "MainActivity";
            @SuppressLint("JavascriptInterface")
            @Override
            protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            final WebView myWebView = (WebView) findViewById(R.id.myWebView);
            WebSettings settings = myWebView.getSettings();
            settings.setJavaScriptEnabled(true);
            myWebView.addJavascriptInterface(new JsInteration(), "control");
            myWebView.setWebChromeClient(new WebChromeClient() {});
            myWebView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            testMethod(myWebView);
            }

            });
            myWebView.loadUrl("file:///android_asset/js_java_interaction.html");
            }

            private void testMethod(WebView webView) {
            String call = "javascript:sayHello()";

            call = "javascript:alertMessage(\"" + "content" + "\")";

            call = "javascript:toastMessage(\"" + "content" + "\")";

            call = "javascript:sumToJava(1,2)";
            webView.loadUrl(call);

            }

            public class JsInteration {

            @JavascriptInterface
            public void toastMessage(String message) {
            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
            }

            @JavascriptInterface
            public void onSumResult(int result) {
            Log.i(LOGTAG, "onSumResult result=" + result);
            }
            }

            }

            前端網頁代碼

            lineos:false js_java_interaction.html





            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            <html>
            <script type="text/javascript">
            function sayHello() {
            alert("Hello")
            }

            function alertMessage(message) {
            alert(message)
            }

            function toastMessage(message) {
            window.control.toastMessage(message)
            }

            function sumToJava(number1, number2){
            window.control.onSumResult(number1 + number2)
            }
            </script>
            Java-Javascript Interaction In Android
            </html>


            調用示例


            js調用Java


            調用格式為window.jsInterfaceName.methodName(parameterValues) 此例中我們使用的是control作為注入接口名稱。

            lineos:false





            1
            2
            3
            4
            5
            6
            7
            function toastMessage(message) {
            window.control.toastMessage(message)
            }

            function sumToJava(number1, number2){
            window.control.onSumResult(number1 + number2)
            }

            Java調用JS


            webView調用js的基本格式為webView.loadUrl(“javascript:methodName(parameterValues)”)


            調用js無參無返回值函數

            lineos:false





            1
            2
            String call = "javascript:sayHello()";
            webView.loadUrl(call);

            調用js有參無返回值函數


            注意對于字符串作為參數值需要進行轉義雙引號。

            lineos:false













            該文章在 2014/11/24 21:52:29 編輯過
            1
            2
            String call = "javascript:alertMessage(\"" 
            關鍵字查詢
            相關文章
            正在查詢...
            點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
            點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
            點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
            點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
            Copyright 2010-2025 ClickSun All Rights Reserved

            黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
            亚洲国产原创私拍精品 | 网友自拍区在线视频精品 | 亚州欧美中文字幕 | 一级中文级字幕电影 | 亚洲网站自偷自拍另类 | 婷婷中文字幕精品一区二区 |