关于Android WebView不支持location.href打开的解决方法 小米部分机型

https://blog.csdn.net/Jack_chb/article/details/79509311


遇到这个问题也纯属无奈,对于Android 【WebView】H5网页支付,的兼容性实在头疼,其实大部分机型都能正常使用,包括跳转至应用实现支付,可以偏偏有些机型就是特殊(毕竟Android开源,家家定制,家家不同),上线运行了一段时间,收到很多用户的反馈,我的机型不行,其中不乏主流的手机商的机型,比如小米mix2,小米5等等

问题:

API 26

小米 5 plus

原先的写法:

[html]  view plain  copy
  1. location.href = url;   

可是在应用内死活不跳转,后面没法子了,让应用打开外置默认浏览器进行网页支付,来缓解这个问题,但毕竟这样操作繁琐,严重降低了支付率。

那为什么不行呢?

研究了半天,对比了很多代码就是不行,今天看到有文章提到会对“location.href”限制,我突然想到这个问题,后面调试了下,竟然完美解决这个问题,实在惊喜!!!!

代码:

[html]  view plain  copy
  1. //强制转换,限制跳转方式  
  2.             function data_href(url) {  
  3.                 $("#href_true").attr("href",url);//传入参数  
  4.                 document.getElementById("href_true").click();//模拟点击  
  5.             }  

(在H5支付页面的JS代码里加入这个方面)

[html]  view plain  copy
  1. <a id="href_true" style="display: none;"></a>  

然后在<body>里面加入这个隐藏的跳转链接,用于模拟点击跳转

[html]  view plain  copy
  1. data_href(url);  

这样操作之后就可以在应用里面测试了,完美拉起,哈哈哈


猜你喜欢

转载自blog.csdn.net/zgpeterliu/article/details/80507465
今日推荐