狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

  • <label id="amwb2"></label>

              Android中Java和JavaScript交互

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