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)申請,其實這要看你具體的流程,你也可以在跳轉(zhuǎn)到這個頁面的時候申請,也可以在展示網(wǎng)頁的時候申請。
最后說一下,onGeolocationPermissionsShowPrompt這個方法只會調(diào)用一次,和動態(tài)申請權(quán)限一樣,只會在第一次調(diào)用。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android如何讓W(xué)ebView中的HTML5頁面實現(xiàn)視頻全屏播放
- Android編程實現(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ā)實現(xiàn)webview中img標簽加載本地圖片的方法
- Android studio點擊跳轉(zhuǎn)WebView詳解
- 詳解android webView獨立進程通訊方式
- Android使用WebView實現(xiàn)全屏切換播放網(wǎng)頁視頻功能
相關(guān)文章
Android實現(xiàn)動態(tài)高斯模糊效果示例代碼
這篇文章主要介紹了Android快速實現(xiàn)動態(tài)模糊效果示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-01-01通過案例分析Android WindowManager解析與騙取QQ密碼的過程
Windows Manager是一款窗口管理終端,可以遠程連接到Linux的X桌面進行管理,與服務(wù)器端產(chǎn)生一個session相互通信,通過本文給大家分享Android WindowManager解析與騙取QQ密碼的過程,需要的朋友參考下2016-01-01Android提高之使用NDK把彩圖轉(zhuǎn)換灰度圖的方法
這篇文章主要介紹了Android使用NDK把彩圖轉(zhuǎn)換灰度圖的方法,在Android項目開發(fā)中有一定的實用價值,需要的朋友可以參考下2014-08-08Android自定義View實現(xiàn)九宮格圖形解鎖(Kotlin版)
這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)九宮格圖形解鎖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09