H5页面获取定位一直显示加载中
背景
H5页面获取定位封装了一个公共方法,获取链路为:
平台判断 → 原生定位尝试 → 降级到H5定位 → URL参数检查 → 浏览器定位 → IP定位的完整链路
ios和android系统没问题,但是在鸿蒙系统上卡在了浏览器定位:navigator.geolocation.getCurrentPosition,既没有返回then,也没有进入到error中,继而页面一直展示加载中
问题分析
通过vconsole日志,查看ios和android,在执行到此环节时,进入到error中,然后拿到IP定位的结果,得以完成渲染过程,在鸿蒙系统上,运行到【navigator.geolocation.getCurrentPosition】进程阻塞,继而怀疑是鸿蒙的webview中缺失了对其的处理
navigator.geolocation.getCurrentPosition是什么东西?
Geolocation 接口是一个用来获取设备地理位置的可编程的对象,它可以让 Web 内容访问到设备的地理位置,这将允许网站或应用基于用户的地理位置提供定制的信息。
带有此接口的对象可以用由 Navigator 实现的属性 navigator.geolocation 来获得。
