在Android中,WebView是一個用于顯示網頁的視圖。要實現WebView與原生應用的交互,你可以使用以下方法:
在Android中,你可以創建一個本地對象,并將其設置為JavaScript接口。這樣,當網頁中的JavaScript代碼調用該接口的方法時,原生應用將收到通知。
首先,創建一個本地對象,該對象包含一個或多個供JavaScript調用的方法:
public class MyJavaScriptInterface {
private TextView textView;
public MyJavaScriptInterface(TextView textView) {
this.textView = textView;
}
@JavascriptInterface
public void processContent(String content) {
textView.setText(content);
}
}
然后,將這個對象添加到WebView中:
WebView webView = findViewById(R.id.webview);
TextView textView = findViewById(R.id.textView);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJavaScriptInterface(textView), "Android");
webView.loadUrl("file:///android_asset/index.html");
最后,在HTML文件中,你可以使用JavaScript調用這個接口的方法:
<!DOCTYPE html>
<html>
<head>
<title>WebView Example</title>
<script type="text/javascript">
function callAndroidFunction() {
var content = "Hello from JavaScript!";
Android.processContent(content);
}
</script>
</head>
<body>
<button onclick="callAndroidFunction()">Click me</button>
</body>
</html>
你還可以通過擴展WebViewClient類并重寫shouldOverrideUrlLoading()
方法來實現對特定URL的點擊事件處理。這樣,當用戶點擊某個鏈接時,你可以執行相應的操作,例如打開一個新的Activity。
WebView webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("http://")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
return false;
}
});
webView.loadUrl("file:///android_asset/index.html");
在Android中,你可以使用addJavascriptInterface()
方法將一個本地對象注冊為JavaScript接口,并指定一個名稱供JS調用。這樣,當JS代碼調用該名稱的方法時,原生應用中的對應方法將被執行。
首先,創建一個本地對象,該對象包含一個或多個供JavaScript調用的方法:
public class MyJavaScriptInterface {
private TextView textView;
public MyJavaScriptInterface(TextView textView) {
this.textView = textView;
}
@JavascriptInterface
public void processContent(String content) {
textView.setText(content);
}
}
然后,將這個對象添加到WebView中:
WebView webView = findViewById(R.id.webview);
TextView textView = findViewById(R.id.textView);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJavaScriptInterface(textView), "Android");
webView.loadUrl("file:///android_asset/index.html");
最后,在HTML文件中,你可以使用JavaScript調用這個接口的方法:
<!DOCTYPE html>
<html>
<head>
<title>WebView Example</title>
<script type="text/javascript">
function callAndroidFunction() {
var content = "Hello from JavaScript!";
Android.processContent(content);
}
</script>
</head>
<body>
<button onclick="callAndroidFunction()">Click me</button>
</body>
</html>
通過這些方法,你可以在Android WebView中實現與原生應用的交互。