我是靠谱客的博主 呆萌墨镜,最近开发中收集的这篇文章主要介绍android webview source,Android WebView踩坑集锦(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

项目背景

原生Android项目中通过 WebView 加载 assets/www 文件夹下的 index.html。

ERROR, source file:///android_asset/www/build/vendor.js (1)

从 Android Studio 的 Log 记录中发现此错误信息,然后通过 Chrome 的 inspect 工具查看到 Log 为:TypeError: Cannot read property 'setItem' of null {stack: (...),解决方案如下:

// webview的设置中添加如下代码

WebSettings settings = webView.getSettings();

settings.setDomStorageEnabled(true);

跨域问题

假如本地HTML文件中使用ajax获取数据,则会遇到跨域问题,报错的Log如下:

XMLHttpRequest cannot load '...'. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 500.", source: file:///android_asset/www/index.html (0)

解决方案如下:

// webview的设置中添加如下代码

try {

if (Build.VERSION.SDK_INT >= 16) {

Class> clazz = webview.getSettings().getClass();

Method method = clazz.getMethod("setAllowUniversalAccessFromFileURLs", boolean.class);

if (method != null) {

method.invoke(vb.getSettings(), true);

}

}

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

}

Cookie身份认证

Hybrid App开发少不了认证的问题,5.0以上需要开启第三方Cookie存储

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

CookieManager.getInstance().setAcceptThirdPartyCookies(webview, true);

}

最后

以上就是呆萌墨镜为你收集整理的android webview source,Android WebView踩坑集锦(一)的全部内容,希望文章能够帮你解决android webview source,Android WebView踩坑集锦(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(89)

评论列表共有 0 条评论

立即
投稿
返回
顶部