magics

为了方便网页和应用的交互,安卓系统WebView提供JavaScript网页脚本调用Java类方法的机制。只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。

MainActivity.java代码:

package com.apple.browser;

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

public class MainActivity extends Activity {

	private WebView webView;
	private Activity activity;

	@SuppressLint("SetJavaScriptEnabled")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		activity = this;

		webView = (WebView) findViewById(R.id.webview);
		webView.loadUrl("file:///android_asset/index.html");

		final WebSettings settings = webView.getSettings();
		settings.setJavaScriptCanOpenWindowsAutomatically(true);
		settings.setJavaScriptEnabled(true);
		settings.setSupportZoom(true);

		webView.addJavascriptInterface(new JSInvokeClass(), "js2java");
	}

	public final class JSInvokeClass {
		public void back() {
			// activity.finish();
			Toast.makeText(activity, "通过js调用的Java方法", Toast.LENGTH_SHORT).show();
		}
	}
}

 
HTML中代码:

<input type=button name=smt value=\'invoke java\' onclick="javascript:window.js2java.back();">


 XML布局代码:
                       略

分类:

技术点:

相关文章:

  • 2021-12-06
  • 2021-08-04
  • 2021-12-11
  • 2021-10-24
  • 2021-06-08
  • 2021-11-08
猜你喜欢
  • 2021-10-19
  • 2021-12-14
  • 2021-11-21
  • 2022-01-03
  • 2021-04-05
  • 2021-08-29
  • 2021-04-30
相关资源
相似解决方案