zoukankan      html  css  js  c++  java
  • js与android webview交互

    0x01 js调用java代码

    android webview中支持通过添加js接口

    webview.addJavascriptInterface(new JsInteration(), "control");
    

    参数说明:

    第一个:java对象对应这个WebView的JavaScript上下文

    第二个:调用java对象的js中引用对象

    Parameters:
     1 object the Java object to inject into this WebView's JavaScript context. Null values are ignored.
     2 name the name used to expose the object in JavaScript

    0x02 java调用js代码

     构造一个可执行的js脚本字符串

     webview.loadurl("js脚本");

    0x03 关于type="file" input控件在android平台上没触发文件选择事件,android系统屏蔽其消息,需要设置

    id_webview.setWebChromeClient(new WebChromeClient() {
    
    			// For Android 3.0+
    			public void openFileChooser(ValueCallback<Uri> uploadMsg,
    					String acceptType) {
    				mUploadMessage = uploadMsg;
    				Intent i = new Intent(Intent.ACTION_GET_CONTENT);
    				i.addCategory(Intent.CATEGORY_OPENABLE);
    				i.setType("image/*");
    				XQSInspectionActivity.this.startActivityForResult(
    						Intent.createChooser(i, "ÎļþÑ¡Ôñ"),
    						XQSInspectionActivity.FILECHOOSER_RESULTCODE);
    			}
    
    			// For Android < 3.0
    			@SuppressWarnings("unused")
    			public void openFileChooser(ValueCallback<Uri> uploadMsg) {
    				openFileChooser(uploadMsg, "");
    			}
    
    			// For Android > 4.1
    			@SuppressWarnings("unused")
    			public void openFileChooser(ValueCallback<Uri> uploadMsg,
    					String acceptType, String capture) {
    				openFileChooser(uploadMsg, "");
    			}
    		});
    

      

  • 相关阅读:
    我的 conky 配置 (入门)
    三个字符编码问题的解决
    如何查看Mysql的版本
    oracle历险记纪实
    禁用USB总集
    如何更改Andrioid模拟器 avd路径
    linux 安装rpm包时遇到error:Failed dependencies解法方法
    最为流行的几款Java IDE
    android sdk 如何重新生成debug.keystore
    开始学习linux知识,每天做点总结
  • 原文地址:https://www.cnblogs.com/lmf-techniques/p/5736125.html
Copyright © 2011-2022 走看看