项目中native的数据同步问题

135 阅读1分钟

在开发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)

加上代码后问题解决了,但是不是很明白原理,为什么创建了一个元素问题就决绝了?明白的大佬麻烦提点一下,谢谢!