在开发app的过程中遇到了一种情况,之前开发的代码一直没有问题,当时市面上ios15系统刚上市,app在其他安卓和ios系统上没有问题,但在ios15系统出现了问题,该取的参数取不到。
debugger发现,在ios15系统上native的方法没有注入,也就是代码在握手协议之前就已经执行了,所以native方法统统失灵了,最后联系ios的开发老师,被告知native方法使用不规范。ios老师提供了一段代码,要求ios系统时加上,代码如下:
window.event = document.createEvent('HTMLEvents')
window.event.initEvent('phDeviceReady', true, true)
let parent = document.getElementsByTagName('body')[0]
let iframe = document.createElement('iframe') // 设置 iframe 属性
iframe.style.display = 'none'
iframe.setAttribute('src', 'common-js:handshake')
parent.appendChild(iframe)
加上代码后问题解决了,但是不是很明白原理,为什么创建了一个元素问题就决绝了?明白的大佬麻烦提点一下,谢谢!