公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

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

            Android中Java和JavaScript交互

            admin
            2014年11月24日 21:52 本文熱度 6626
            Android提供了一個很強(qiáng)大的WebView控件用來處理Web網(wǎng)頁,而在網(wǎng)頁中,JavaScript又是一個很舉足輕重的腳本。本文將介紹如何實(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)度、堆場、車隊、財務(wù)費(fèi)用、相關(guān)報表等業(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),不限功能、不限時間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
            Copyright 2010-2025 ClickSun All Rights Reserved

            主站蜘蛛池模板: 国产尤物在线视精品在亚洲 | 国产成年人精彩视频 | av日韩天堂| 国产成人午夜精品一区二区三区 | 国产av一区二区三区天堂综合网 | 2025天天做夜夜爽视频综合 | 国产二级毛片无码精品视频 | 国产午夜在线看免费观看视频 | 国产成人综合色在线观看网站 | 国产精品变态另类虐交 | 国产极品粉嫩馒头一线天av | 国产白丝内射 | 国产精品色婷婷99久久精品 | 国产成人亚洲精品无码青青草原 | 国产成人咱精品视频免费网站 | 国产高清一区二区在线免费观看 | 精品人妻一区二区三区色欲影院 | 国产精品视频一区二区三区w | 国产成人综合高清在线观看 | 国产美女精品自在线拍幼 | 91麻豆国产香蕉久久精品 | 精品麻豆丝袜高跟鞋av | 国产91白丝在线 | 国产精品边做奶水狂喷有码 | 国产日韩精品无码区免费专区国产 | 91精品91久久久 | 69一区二三区 | 91在线精品亚洲一区二区 | 国产欧美高清视频 | 国产精品无码av在毛片 | 99精品久久久 | 精品无码av一区二区 | 国产成人av三级在线观看按摩 | 国产精品人人妻人人狠 | 国产精品福利一区二区 | 91制片厂果冻星空传媒科幻 | av无码小缝喷白浆在线观看 | 精品国产一区二区三区不卡蜜臂 | 国产精品毛片完整版视频 | 国产精品冒白 | 国产精品无码中 |