溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

android 與JavaScript中怎么實(shí)現(xiàn)互相調(diào)用

發(fā)布時(shí)間:2021-06-28 16:12:58 來源:億速云 閱讀:121 作者:Leah 欄目:開發(fā)技術(shù)

android 與JavaScript中怎么實(shí)現(xiàn)互相調(diào)用,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

1.html代碼

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>  
		<title>Android/Javascript互調(diào)Demo</title>
		<script type="text/javascript" language="javascript">
			function  callJavaScriptMethod()
			{
				document.getElementById("content").innerHTML = "Android 調(diào)用 Javascript 成功";
			}
		</script>
	</head>
	
	<body>
		<div ><a onClick="window.demo.callJavaMethod()" href="">點(diǎn)擊-->JS調(diào)用Android代碼</a></div>
		<div  id="content"></div>
	</body>
</html>

2.xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
		<WebView
			android:id="@+id/webview"
			android:layout_width="match_parent"
		    android:layout_height="wrap_content" />
		
		<Button
			android:id="@+id/androidCallJSBtn"
			android:layout_width="match_parent"
			android:layout_height="wrap_content"
			android:text="點(diǎn)擊 Android 調(diào)用 JavaScript"/>
		
</LinearLayout>

3.Activity測試代碼

package com.testwebview;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

	 private WebView mWebView;  
	 private Button androidCallJSBtn;
	 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
	}


    @SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })
	private void initView() {
    	
        mWebView = (WebView) findViewById(R.id.webview);  
        WebSettings mWebSettings = mWebView.getSettings();  
       
        mWebSettings.setJavaScriptEnabled(true);   //加上這句話才能使用javascript方法  
        mWebView.addJavascriptInterface(new Object() {//增加接口方法,讓html頁面調(diào)用  

        	public void callJavaMethod() {  
               Toast.makeText(getApplicationContext(), "JS調(diào)用Android成功", Toast.LENGTH_LONG).show();
            }  
        	
        }, "demo");  
        mWebView.loadUrl("file:///android_asset/demo.html");  //加載頁面  
        
        androidCallJSBtn = (Button) findViewById(R.id.androidCallJSBtn);  
        androidCallJSBtn.setOnClickListener(new Button.OnClickListener() {  //給button添加事件響應(yīng),執(zhí)行JavaScript的fillContent()方法 
            public void onClick(View v) {  
                mWebView.loadUrl("javascript:callJavaScriptMethod()");  
            }  
        });  
    }  
}


4.效果圖(依次是未調(diào)用前、android調(diào)用JS、JS調(diào)用android)

android 與JavaScript中怎么實(shí)現(xiàn)互相調(diào)用   android 與JavaScript中怎么實(shí)現(xiàn)互相調(diào)用 android 與JavaScript中怎么實(shí)現(xiàn)互相調(diào)用

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI