记录Android 版本小于19的Webview和js交互的一个坑!

来源:互联网 发布:ubuntu安装maven 编辑:程序博客网 时间:2024/06/16 13:40

                 很久没写博客了,一直加班和公司里开发人员断网的原因,想写个博客都要等下班,下班后又累得洗洗睡 了,真程序员啊。


                 最近赶一个简单的商场项目,因为赶着发布,所以app端只做一个壳,商品页先由web做,后期有时间再换原生,这个壳最

          重要部分就是webview了,需要对web页的适配支持,自然功能上与js的交互也少不了,其中有一个就是web页物理键回退的交互问

          题,如果说一般的回退,直接调用webview.goback()就足够了,因为webview自带url的记录,但是,我司web端对商品的跳转是

          基于子frame跳转的(当然这肯定是有好处的),goback()就无效了,只能是让web端提供js方法调用(目前没想到有其他原生方法)。

                webview调用js其实再简单不过了,这里就不介绍了,但是越简单的东西越容易出错,刚开始的调用js写法的写法是:

                Javascript:page.back();

                视乎没什么问题(至少一开始我是这么认为的),因为19以上的手机是能正常调用这个js,但是为了安全起见,拿了一些19以下

           系统测试,果然是出问题了,这个js加载失败,各种调试都没看出什么问题,最后拿了一个本地web来调试(上面是网络加载web再调试),

          然后再次手写调用相同的js:

         javascript:page.back();
          结果是正常了,吃惊的我赶紧把这两句js比较了下,发现首字母大写的时候,小于19的系统是无法加载的,至于小于19为何要区分大小写,

         大家可以去了解下。 

            

               

原创粉丝点击