zoukankan      html  css  js  c++  java
  • 利用js与java交互

    为了方便网页和应用的交互,安卓系统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布局代码:
                           略

  • 相关阅读:
    OCP-1Z0-051-V9.02-26题
    谨慎使用A2W等字符转换宏
    MySQL 递归查询 当前节点及子节点
    std count_if用法
    OCP-1Z0-053-V12.02-660题
    OCP-1Z0-053-V12.02-667题
    OCP-1Z0-053-V12.02-676题
    OCP-1Z0-051-V9.02-159题
    手工不完全恢复(非归档模式下,日志被覆盖)
    手工完全恢复(非归档模式下,日志没有被覆盖)
  • 原文地址:https://www.cnblogs.com/magics/p/4089593.html
Copyright © 2011-2022 走看看