WebView和JS 交互


  • 注册JS调用的方法(H5调用WebView)
//注意如果出现undefined 接受的参数1、是没有标注 @JavascriptInterface
//  2、是H5 没有调用window.registerName.method(content)  注意window.
public class ClassName {
       @JavascriptInterface
       public void method(final String content) {
           runOnUiThread(new Runnable() {
 
       }
  }
//注册类名字
 webView.getSettings().setJavaScriptEnabled(true);
 webView.addJavascriptInterface(new className(),"registerName");
  • 编写调用JS的方法(Webview调用H5并获得返回值)
//method :JS 提供的方法名字
// webView.loadUrl("javascript:stop()");     19版本之前
//19(包括19版本)之后,需要兼容性。
webView.evaluateJavascript(("javascript:method()"), new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String responseJson) {
                   
                });

*H5需要保存数据持久化(比如需要用户登录信息)

//这个是打开本地持久化
webView.getSettings().setDomStorageEnabled(true);
//还有一种是加载https的URL时在5.0以上加载不了,5.0以下可以加载,这种情况可能是网页中存在非https得资源,在5.0以上是默认关闭,需要设置,
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
  • 与后台进行交互的数据,一般采用JSON ,确保H5返回的格式正确。
  • android 这边不支持H5原生Alert的调用,所以需要H5自己写的组建,最好不要这边拦截处理Alert事件,因为这样就失去了H5移动端开发的意义。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 目录介绍1.WebView和Js交互方式2.Android调用JS脚本3.JS调用Android方法4.Andro...
    杨充211阅读 4,796评论 0 3
  • Webview和JS交互方式 前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台...
    badcyc阅读 1,859评论 1 2
  • 交互方式总结 Android调用JS方法两种方式 通过WebView的loadUrl()方式; 通过WebView...
    三天蓝阅读 3,978评论 0 3
  • 移动应用中许多复杂的且经常改动的页面会使用H5进行代替native,这里就会使用到js和webview的交互 iO...
    黄成阅读 13,765评论 0 30
  • 第一种方式 JS传值给OC 1、技术方案:使用自定义url方法,每次点击网页 2、使用场景:比如点击事件方法,点击...
    HeavenWong阅读 4,221评论 0 4

友情链接更多精彩内容