1:Android端添加WebView控件,用于加载Html文件

WebView webView = new WebView(this);
setContentView(
webView);

webView.setVerticalScrollBarEnabled(false);

webView.setHorizontalScrollBarEnabled(false);
WebSettings settings =
webView.getSettings();

settings.setJavaScriptEnabled(true);

settings.setDefaultTextEncodingName("utf-8");

webView.setWebViewClient(new WebClient());
webView.loadUrl("file:///android_asset/index.html");

2:显示JS中Alert对话框

如果JS方法中有Alert弹框,必须实现WebChromeClient中的方法才能正常显示

webView.setWebChromeClient(new WebChromeClient() {
   
@Override
   
public boolean onJsAlert(WebView view, String url, Stringmessage, JsResult result) {

         return super.onJsAlert(view, url, message, result);
    
}
   })

3:Html文件中内容

引用JS
 <script type="text/javascript" src="People.js">script>
例:Body中添加标签
<input type="button" value="onCCEvent" οnclick="People.onCCEvent('ary1',1, 'EventLabel')"/>

People.js定义方法:

loadURL(url):创建内嵌框架添加到body的子节点,实时移除,释放内存

function loadURL(url) {    var iFrame;    iFrame = document.createElement("iframe");    iFrame.setAttribute("src", url);    iFrame.setAttribute("style", "display:none;");    iFrame.setAttribute("height", "0px");    iFrame.setAttribute("width", "0px");    iFrame.setAttribute("frameborder", "0");    document.body.appendChild(iFrame);    iFrame.parentNode.removeChild(iFrame); 移除iframe    iFrame = null;};exec(funName,args):Html标签点击事件后调用,将参数传入并将创建的内嵌框添加到body子节点function exec(funName, args) {    var commend = {        functionName : funName,        arguments : args    };    var jsonStr = JSON.stringify(commend);    var url = "People:" + jsonStr;    loadURL(url);};
定义Html标签中引用的方法
var People = {
onCCEvent : function(evenArray, evenValue, eventLabel) {    if (isWebviewFlag) {        exec("onCCEvent", [ evenArray, evenValue, eventLabel ]);    }}}
得到Java端数据并弹框显示
function setWebViewFlag (javaStr) {
alert(“setWebViewFlag”+javaStr);}}
4:Android与JS交互
Android端得到JS数据:
通过实现WebViewClient下的shouldOverrideUrlLoading(WebView view,String url)方法,其中urlHtml返回的内容,得到后做对应处理即可
JS得到Android端数据:
webView.loadUrl(javascript:setWebViewFlag(java端参数)”);
初次接触使用iframe实现与Android的交互的方法,亲测后立马贴出来共享下~

更多相关文章

  1. android 按钮效果的两种实现方法
  2. Android设置桌面背景图片的方法
  3. [置顶] 找到一个在Android上创建阻塞式模态对话框的方法
  4. Android来电拦截的实现方法
  5. Android Studio集成Library时报错,终极解决方法
  6. Android从服务器获取图片的实例方法
  7. android屏幕休眠和唤醒两种方法(newWakeLock)
  8. android添加图片到本地,无法即使刷新的解决方法
  9. Android每天定时任务启动方法

随机推荐

  1. 关于Android(安卓)Studio里的Gradle,你所
  2. Android(安卓)学习笔记 - 《第一行代码 A
  3. Android开发实战之——ProgressDialog的
  4. Android不明原因崩溃,不断重启解决办法记
  5. Android(安卓)新API 之 MediaCodec使用笔
  6. Android本地视频播放器开发--ffmpeg解码
  7. Android(安卓)短信链接跳浏览器打开APP
  8. (转)关于android的4.2的0文件夹的详解(目
  9. android 利用shape做控件背景(小圆点,空心
  10. Android(安卓)7.0+抓包https突破ssl-pinn