91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

            Android中Java和JavaScript交互

            admin
            2014年11月24日 21:52 本文熱度 6750
            Android提供了一個(gè)很強(qiáng)大的WebView控件用來處理Web網(wǎng)頁,而在網(wǎng)頁中,JavaScript又是一個(gè)很舉足輕重的腳本。本文將介紹如何實(shí)現(xiàn)Java代碼和Javascript代碼的相互調(diào)用。

            如何實(shí)現(xiàn)


            實(shí)現(xiàn)Java和js交互十分便捷。通常只需要以下幾步。



            • WebView開啟JavaScript腳本執(zhí)行

            • WebView設(shè)置供JavaScript調(diào)用的交互接口。

            • 客戶端和網(wǎng)頁端編寫調(diào)用對方的代碼。

            本例代碼


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


            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);
            }
            }

            }

            前端網(wǎng)頁代碼

            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>


            調(diào)用示例


            js調(diào)用Java


            調(diào)用格式為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調(diào)用JS


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


            調(diào)用js無參無返回值函數(shù)

            lineos:false





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

            調(diào)用js有參無返回值函數(shù)


            注意對于字符串作為參數(shù)值需要進(jìn)行轉(zhuǎn)義雙引號。

            lineos:false













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

            主站蜘蛛池模板: 日本成a人片在 | 国产传媒 | 日本高清视频免 | 国产亚洲女人 | 国产在线观看黄丝袜 | 青草视频 | 国产精品自拍喷水 | 国产在线激情视频 | 国产末成年呦交在线 | 91精品推荐| 黑人巨茎精品 | 日本高清在线 | 国产精品国色 | 91视频盛宴| 激情五月天深爱网 | 成人一区快点播 | 国产区91精品在线 | 国产A级片乱伦网址 | 91精品国产秘原神 | 九色蝌蚪首页 | 九色91视频国 | 国产精品亚洲专区 | 福利在线不卡一区 | 午夜国产一区在线 | 国产欧美日韩亚洲区 | 国产精品午夜在线 | 国产欧美精品区一 | 国产自产 | 国产福利写真视 | 日韩成人精品 | 国产成本人片 | 午夜在线视频影院 | 日韩欧美爽爽的影院 | 韩国理论片在线看 | 国产乱子伦视 | 国产日本欧美精品 | 日本一区二区不卡 | 日韩看羞羞在线播放 | 不卡国产视频第一页 | 国产午夜福利电影h | 岛国大片在线一 |