Ionic应用@ionic-native/launch-navigator插件地图导航在iOS15下失效
问题原因
你当前使用的uk.co.workingedge.phonegap.plugin.launchnavigator@5.0.6版本未适配iOS15的scheme跳转校验规则,iOS15新增了应用跳转的白名单强制校验,未声明的scheme无法正常触发跳转。
修复步骤
第一步:升级依赖包到适配版本
先卸载旧版本插件,再安装适配iOS15的版本:ionic cordova plugin rm uk.co.workingedge.phonegap.plugin.launchnavigator ionic cordova plugin add uk.co.workingedge.phonegap.plugin.launchnavigator@5.1.0 npm install @ionic-native/launch-navigator@latest升级后确保package.json中依赖版本不低于以下值:
"@ionic-native/launch-navigator": "^5.36.0", "uk.co.workingedge.phonegap.plugin.launchnavigator": "^5.1.0"第二步:添加iOS scheme白名单配置
在项目config.xml的iOS平台配置节点下,添加LSApplicationQueriesSchemes声明,把你需要支持跳转的地图应用对应的scheme都加入白名单:<platform name="ios"> <config-file parent="LSApplicationQueriesSchemes" platform="ios" target="*-Info.plist"> <array> <string>comgooglemaps</string> <string>baidumap</string> <string>iosamap</string> <string>waze</string> <string>citymapper</string> <string>navigon</string> <string>transit</string> <string>lyft</string> <string>uber</string> <string>tomtomhome</string> <string>sygic</string> </array> </config-file> </platform>第三步:调整调用代码,增加错误捕获
原调用方法未做错误处理,调整为带参数配置和异常捕获的写法:import { LaunchNavigator, LaunchNavigatorOptions } from '@ionic-native/launch-navigator/ngx'; constructor( private navigator: LaunchNavigator ) { } public navigate() { const options: LaunchNavigatorOptions = { start: '', // 可传入起点地址,留空默认用当前位置 app: this.navigator.APP.USER_SELECT // 让用户选择要跳转的地图应用,也可固定指定某一个 }; this.navigator.navigate("London, UK", options) .then(() => { console.log('跳转导航成功'); }) .catch((error) => { console.error('跳转导航失败', error); }); }注意:如果是Ionic 4/5/6项目,导入路径要带/ngx后缀
内容的提问来源于stack exchange,提问作者archana parmar
相关产品推荐
相关产品推荐

