我有一个依赖于Google Maps的JS应用程序正在部署中。我使用RequireJS的异步插件加载了Google Maps SDK for JS ...
mapsKey = '&key=' + MY_API_KEY;
mapsURL = 'https://maps.googleapis.com/maps/api/js?libraries=places,geometry&v=3' + mapsKey;
define('GoogleMaps', ['async!' + mapsURL], function() {
return window.google.maps;
});
我希望从服务器中获取MY_API_KEY,因为我不想在应用程序代码中包含它。如果我们的服务器暂时不可用并且无法获取密钥值,或者由于某种原因Google拒绝了API密钥,则表示控制台错误...
"Google Maps API error: Google Maps API error: InvalidKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#invalid-key-map-error"
更糟糕的是,应用程序中出现了一个丑陋的弹出窗口...
我在Google处使用了有效的API密钥设置,并且一切正常。但是,如果出现加载错误,我想在没有API密钥的情况下重试。Google确实在JS控制台中发出有关丢失密钥的警告,但至少到目前为止,它仍然是万不得已的方法。
问题:如何捕获Google Maps API错误?
在加载过程中,该错误是从Google Maps库中引发的。这不是超时,而是无效的密钥参数错误。不能检查生成的window.google.maps实例,因为已经显示了难看的弹出消息。我没有找到捕获错误并防止弹出窗口的方法。我想提供一些防御性代码,以在没有API密钥的情况下重试。
您可以使用以下全局功能捕获身份验证错误:
function gm_authFailure() { /* Code */ };
如果要以编程方式检测到身份验证失败(例如自动发送信标),则可以准备回调函数。如果定义了以下全局函数,则在身份验证失败时将调用它。函数gm_authFailure(){/ *代码* /};
https://developers.google.com/maps/documentation/javascript/events#auth-errors
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句