Android關(guān)于WebView中無法定位的問題解決
之前碰到個問題,使用webview的時候無法定位,最近19大沒法墻,只能去百度逛逛,發(fā)現(xiàn)有人說要這么做
WebSettings settings = wbContent.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setGeolocationEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
settings.setGeolocationDatabasePath(dir);
webChromeClient = new WebChromeClient(){
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, true);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
};
wbContent.setWebChromeClient(webChromeClient);
wbContent.loadUrl("https://xxxxxxxxxxxxxxxxxxxxxxxx");
網(wǎng)上很多地方說加了這段代碼之后就可以正常定位了,然而我加上之后還是沒有什么卵用。沒辦法,百度就是沒谷歌給力。
看了下日志,說我沒有獲取到權(quán)限,但是代碼中的callback.invoke(origin, true, true);是獲取定位權(quán)限的操作啊。
我想了想,突然想到了6.0之后要動態(tài)申請權(quán)限。
我這樣加入動態(tài)申請權(quán)限的代碼
if (Build.VERSION.SDK_INT >= 23) {
int checkPermission = ContextCompat.checkSelfPermission(LocationTestActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION);
if (checkPermission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(LocationTestActivity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
ActivityCompat.requestPermissions(LocationTestActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}else {
wbContent.loadUrl("https://xxxxxxxxxxxxxxxxxxxxxxxx");
}
}
發(fā)現(xiàn)這樣就能正常的獲取到定位的結(jié)果,有的人可能不知道要在哪里動態(tài)申請,其實(shí)這要看你具體的流程,你也可以在跳轉(zhuǎn)到這個頁面的時候申請,也可以在展示網(wǎng)頁的時候申請。
最后說一下,onGeolocationPermissionsShowPrompt這個方法只會調(diào)用一次,和動態(tài)申請權(quán)限一樣,只會在第一次調(diào)用。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android如何讓W(xué)ebView中的HTML5頁面實(shí)現(xiàn)視頻全屏播放
- Android編程實(shí)現(xiàn)WebView全屏播放的方法(附源碼)
- Android編程使WebView支持HTML5 Video全屏播放的解決方法
- Android使用WebView播放flash的方法
- Android WebView與JS交互全面詳解(小結(jié))
- 詳解android 用webview加載網(wǎng)頁(https和http)
- Android webview如何加載HTML,CSS等語言的示例
- Android Webview與ScrollView的滾動兼容及留白處理的方法
- Android開發(fā)實(shí)現(xiàn)webview中img標(biāo)簽加載本地圖片的方法
- Android studio點(diǎn)擊跳轉(zhuǎn)WebView詳解
- 詳解android webView獨(dú)立進(jìn)程通訊方式
- Android使用WebView實(shí)現(xiàn)全屏切換播放網(wǎng)頁視頻功能
相關(guān)文章
android 實(shí)現(xiàn)類似微信緩存和即時更新好友頭像示例
本篇文章主要介紹了android 實(shí)現(xiàn)類似微信緩存和即時更新好友頭像示例,具有一定的參考價值,有興趣的可以了解一下。2017-01-01
Android滑動動態(tài)分頁實(shí)現(xiàn)方法
這篇文章主要介紹了Android滑動動態(tài)分頁實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Android實(shí)現(xiàn)滑動動態(tài)分頁的操作步驟與核心實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-10-10
Android啟動屏實(shí)現(xiàn)左右滑動切換查看功能
這篇文章主要介紹了Android啟動屏實(shí)現(xiàn)左右滑動切換查看功能的相關(guān)資料,針對新功能屬性介紹和啟動屏進(jìn)行詳細(xì)講解,感興趣的小伙伴們可以參考一下2016-01-01
Android使用Rotate3dAnimation實(shí)現(xiàn)3D旋轉(zhuǎn)動畫效果的實(shí)例代碼
利用Android的ApiDemos的Rotate3dAnimation實(shí)現(xiàn)了個圖片3D旋轉(zhuǎn)的動畫,圍繞Y軸進(jìn)行旋轉(zhuǎn),還可以實(shí)現(xiàn)Z軸的縮放。點(diǎn)擊開始按鈕開始旋轉(zhuǎn),點(diǎn)擊結(jié)束按鈕停止旋轉(zhuǎn)。2018-05-05
Android學(xué)習(xí)系列一用按鈕實(shí)現(xiàn)顯示時間
這篇文章主要介紹了Android學(xué)習(xí)系列一用按鈕實(shí)現(xiàn)顯示時間的相關(guān)資料,需要的朋友可以參考下2016-05-05
Android調(diào)用系統(tǒng)拍照裁剪圖片模糊的解決方法
這篇文章主要為大家詳細(xì)介紹了Android調(diào)用系統(tǒng)拍照裁剪圖片模糊的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01
Android下Activity全屏顯示實(shí)現(xiàn)方法
這篇文章主要介紹了Android下Activity全屏顯示實(shí)現(xiàn)方法,以兩種不同的方法來實(shí)現(xiàn)這一技巧,非常具有實(shí)用性,需要的朋友可以參考下2014-10-10

