在写h5页面的时候经常会考虑到ios兼容问题,所以防止自己忘记,保存一下自己的代码,好复制

1.判断安卓或者ios

let ran = navigator.userAgent
let isAndroid = ran.indexOf('Android') > -1 || ran.indexOf('Linux') > -1
let isIOS = !!ran.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)

if (isAndroid) {
     // 安卓代码块
}
if (isIOS) {
     // ios代码块
}

一般情况到用上面的就够了,但是有些在某种情况下这个方法会失去效果,比如h5调用原生的方法.这个时候这个方法可能达不到预计的效果,这是因为ios中在调原生的方法时候,window.webkit未定义,然后,还有的时候方法未定义.

// 我是需要一个刷新页面, 我当时调用原生js的刷新直接就从app跳转到浏览器,虽然不知道为啥,但是我就让原生一个方法h5调用
let ran = navigator.userAgent
let isAndroid = ran.indexOf('Android') > -1 || ran.indexOf('Linux') > -1
let isIOS = !!ran.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)

if (window.androidInterface && isAndroid) {
    window.androidInterface.reload()
    return
}
// reload 是刷新的方法
if (window.webkit && window.webkit.messageHandlers.reload && isIOS) {
    window.webkit.messageHandlers.reload.postMessage('')
    return
}
location.reload()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐