我正在使用Android Mapbox SDK 7.0.0,并通过给定方法Mapbox.getInstance(applicationContext, mapboxToken)
我的身份验证令牌mapboxToken
运行正常,并显示了地图。
但是,如何检测身份验证令牌何时过期?
我想不时刷新此身份验证令牌,但这也意味着Android应用必须检测过期的令牌才能请求新的令牌。
如果缓存中没有图块,则MapboxView
会触发OnDidFailLoadingMapListener
,但是如果缓存中有一些图块,则将正确加载映射,不会加载新的图块,也不会触发回调。
答案 0 :(得分:0)
我找到了解决问题的方法。可以覆盖Mapbox SDK的Http客户端。该解决方法适用于Android提供的Mapbox SDK。添加拦截器,我们可以在将响应返回给Mapbox本机库之前解释Http代码。
这是我捕获未授权HTTP代码的解决方法:
val client = OkHttpClient.Builder().addInterceptor { chain ->
val response = chain.proceed(chain.request())
if (response.code() == 401) {
// Code that handles unauthorized Mapbox token
}
response
}.build()
HttpRequestImpl.setOkHttpClient(client)