亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

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

      Android中Java和JavaScript交互

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

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


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



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

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

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

      本例代碼


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


      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)頁(yè)代碼

      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無(wú)參無(wú)返回值函數(shù)

      lineos:false





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

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


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

      lineos:false













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