最近公司的项目"一步"上用到了webview与js交互,主要是用google地图必须要安装有google pay,但是国内的手机都去掉了, 没办法只有用google地图的网页版了, 好在公司ios的小伙伴会h5,英语也不赖, 所以我倒是没爬google的坑,专心搞下webview与js交互的问题了。
第一个问题:地图加载不出来
webview调用的本地js接口不一定是在主线程,我估计和html写的有关(异步), 所以如果是要在本地的接口中更新ui或者有些网络框架要在主线程中做的话请用handler发到主线程中做。
第二个问题:地图的缩放级别对了,但是显示的不对
检查下是不是有这句代码:webSettings.setUseWideViewPort(true); 有的话注释掉。
第三个问题:android 4.2以上掉用不了js
android4.2以上做了修改,本地接口要加注解@JavascriptInterface。
第四个问题:地图只能移动一次
有可能是在相关操作中调用了本地的方法,而本地没有实现,js中的本地接口方法中即使没有实现也不会抛异常,但是会出问题,记得检查。
(android.4.4手机webview.loadUrl("javaScript:xxx()"),这里javascript的s是大写的也不会有问题(小米3亲测),但是小米2就出错了,网页直接报错。
最后看到了一个webview的优化,记录下来先
http://www.kuqin.com/shuoit/20151221/349550.html