AndroidWebView和Js的交互
【知识概要】
1. Android中通过WebView调用JS方法(传递参数)
2、Js调用Android的方法
3、WebView适配
【实现效果】
一、【 Android中通过WebView调用JS方法(传递参数)】
Android代码
Android调用js中showDemo(str)方法存在两种方式:(新版本浏览器和旧版本浏览器)、利用webview直接去执行js代码。
Android代码
Js代码
点击Adnroid中按钮,调取js代码,将结果更新至WebView。
二、【js中调取Android代码_广播 @JavascriptInterface】
Android代码
js调用showString()方法,将数据放入intent中去,然后发送广播。在构造JavasrciptMethod实例的时候将activity传递进去。app中接受到广播ACTION_WEB事件后就会调用对应的方法,把从js中传递过来的数据显示至view控件中。
Android代码
然后需要对广播进行注册,并指定接口的名称为Vine。
Android代码
在js中调用方式:(指定接口中的具体方法)
Js代码
四、【WebView适配】
如果接入的h5没适配好给app端,需自己去做适配。避免出现web展示的h5特别大等问题。
-
webView = findViewById(R.id.webView);
-
-
WebSettings settings = webView.getSettings();
-
// 设置WebView支持JavaScript
-
settings.setJavaScriptEnabled(true);
-
//支持自动适配
-
settings.setUseWideViewPort(true);
-
settings.setLoadWithOverviewMode(true);
-
settings.setSupportZoom(true); //支持放大缩小
-
settings.setBuiltInZoomControls(true); //显示缩放按钮
-
settings.setBlockNetworkImage(true);// 把图片加载放在最后来加载渲染
-
settings.setAllowFileAccess(true); // 允许访问文件
-
settings.setSaveFormData(true);
-
settings.setGeolocationEnabled(true);
-
settings.setDomStorageEnabled(true);
-
settings.setJavaScriptCanOpenWindowsAutomatically(true);/// 支持通过JS打开新窗口
-
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
-
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
-
//设置不让其跳转浏览器
-
webView.setWebViewClient(new WebViewClient() {
-
-
public boolean shouldOverrideUrlLoading(WebView view, String url) {
-
return false;
-
}
-
});
-
-
// 添加客户端支持
-
webView.setWebChromeClient(new WebChromeClient());
-
// mWebView.loadUrl(TEXTURL);
-
-
//不加这个图片显示不出来
-
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
-
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
-
}
-
webView.getSettings().setBlockNetworkImage(false);
-
-
//允许cookie 不然有的网站无法登陆
-
CookieManager mCookieManager = CookieManager.getInstance();
-
mCookieManager.setAcceptCookie(true);
-
mCookieManager.setAcceptThirdPartyCookies(webView, true);
-
-
webView.loadUrl(URL);
五、【总结】
1、Andorid调用Js:调用webview中的方法。
2、Js调用Android方法代码。
[1] 在Android利用@javascriptInterface提供接口、@javascriptInterface告知webview,此方法是一个可以被js调用的方法:广播传递参数或方法或要执行的东西->广播接收器接收到信息->执行
[2] 将接口添加至webview, webview.addJavaScriptInterface();也可以调用多个方法。
[3] js代码中调用即可。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhffgkhc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24