欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員
  • Android中Java和JavaScript交互

    admin
    2014年11月24日 21:52 本文熱度 6189
    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