Cordova iOS集成Google Maps JS API遇RefererNotAllowedMapError求助
iOS Cordova + Google Maps JavaScript API RefererNotAllowedMapError 解决方案
我之前也碰到过一模一样的iOS Cordova + Google Maps JS API的授权问题,折腾了好一阵才搞定,结合你的情况给你几个可行的方案:
开发阶段临时解决方案:放宽API密钥Referer限制
因为iOS模拟器/真机上的file://路径是动态生成的,每次打包或更换设备都会变化,根本没法逐个添加到授权列表里。你可以在Google Cloud Console的API密钥授权设置中,添加file:///*作为允许的来源。
虽然这个范围看起来比较宽泛,但仅限开发阶段使用是完全安全的,上线前记得一定要调整为更严格的配置。如果保存时遇到Google Cloud页面崩溃的情况,试试换用无痕浏览器操作,大概率是控制台缓存导致的问题。
生产环境安全配置:改用本地HTTP服务器加载资源
上线时不能使用宽泛的file:///*授权,推荐你安装cordova-plugin-ionic-webview插件——它会把Cordova iOS应用的本地资源通过http://localhost来提供访问,这样你就能直接复用WebApp已经配置好的http://localhost:3000/*类授权规则,完美解决Referer不匹配的问题。
安装插件的命令很简单:
cordova plugin add cordova-plugin-ionic-webview
安装完成后重新打包iOS应用,此时应用内的页面都会通过http://localhost加载,Google Maps API的请求Referer就会符合授权要求了。
关于Google官方Bug的说明
你提到的开放Bug我也有关注,目前Google官方还没有推出正式修复方案,但上面的两个方案已经能完全覆盖开发和生产环境的需求,不需要等官方修复就能正常使用。
内容的提问来源于stack exchange,提问作者spodell
相关产品推荐
相关产品推荐

