很久没写博客了,一直加班和公司里开发人员断网的原因,想写个博客都要等下班,下班后又累得洗洗睡 了,真程序员啊。
最近赶一个简单的商场项目,因为赶着发布,所以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为何要区分大小写,
大家可以去了解下。