Android關(guān)于WebView中無(wú)法定位的問(wèn)題解決
之前碰到個(gè)問(wèn)題,使用webview的時(shí)候無(wú)法定位,最近19大沒(méi)法墻,只能去百度逛逛,發(fā)現(xiàn)有人說(shuō)要這么做
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)上很多地方說(shuō)加了這段代碼之后就可以正常定位了,然而我加上之后還是沒(méi)有什么卵用。沒(méi)辦法,百度就是沒(méi)谷歌給力。
看了下日志,說(shuō)我沒(méi)有獲取到權(quán)限,但是代碼中的callback.invoke(origin, true, true);是獲取定位權(quán)限的操作啊。
我想了想,突然想到了6.0之后要?jiǎng)討B(tài)申請(qǐng)權(quán)限。
我這樣加入動(dòng)態(tài)申請(qǐng)權(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é)果,有的人可能不知道要在哪里動(dòng)態(tài)申請(qǐng),其實(shí)這要看你具體的流程,你也可以在跳轉(zhuǎn)到這個(gè)頁(yè)面的時(shí)候申請(qǐng),也可以在展示網(wǎng)頁(yè)的時(shí)候申請(qǐng)。
最后說(shuō)一下,onGeolocationPermissionsShowPrompt這個(gè)方法只會(huì)調(diào)用一次,和動(dòng)態(tài)申請(qǐng)權(quán)限一樣,只會(huì)在第一次調(diào)用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android如何讓W(xué)ebView中的HTML5頁(yè)面實(shí)現(xiàn)視頻全屏播放
- Android編程實(shí)現(xiàn)WebView全屏播放的方法(附源碼)
- Android編程使WebView支持HTML5 Video全屏播放的解決方法
- Android使用WebView播放flash的方法
- Android WebView與JS交互全面詳解(小結(jié))
- 詳解android 用webview加載網(wǎng)頁(yè)(https和http)
- Android webview如何加載HTML,CSS等語(yǔ)言的示例
- Android Webview與ScrollView的滾動(dòng)兼容及留白處理的方法
- Android開(kāi)發(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)頁(yè)視頻功能
相關(guān)文章
Flutter開(kāi)發(fā)實(shí)現(xiàn)底部留言板
這篇文章主要為大家詳細(xì)介紹了Flutter開(kāi)發(fā)實(shí)現(xiàn)底部留言板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Android實(shí)現(xiàn)動(dòng)態(tài)高斯模糊效果示例代碼
這篇文章主要介紹了Android快速實(shí)現(xiàn)動(dòng)態(tài)模糊效果示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01基于移動(dòng)端真機(jī)調(diào)試的圖文教程(分享)
下面小編就為大家分享一篇基于移動(dòng)端真機(jī)調(diào)試的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Android?8.0實(shí)現(xiàn)藍(lán)牙遙控器自動(dòng)配對(duì)
這篇文章主要為大家詳細(xì)介紹了Android?8.0實(shí)現(xiàn)藍(lán)牙遙控器自動(dòng)配對(duì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08通過(guò)案例分析Android WindowManager解析與騙取QQ密碼的過(guò)程
Windows Manager是一款窗口管理終端,可以遠(yuǎn)程連接到Linux的X桌面進(jìn)行管理,與服務(wù)器端產(chǎn)生一個(gè)session相互通信,通過(guò)本文給大家分享Android WindowManager解析與騙取QQ密碼的過(guò)程,需要的朋友參考下2016-01-01Android提高之使用NDK把彩圖轉(zhuǎn)換灰度圖的方法
這篇文章主要介紹了Android使用NDK把彩圖轉(zhuǎn)換灰度圖的方法,在Android項(xiàng)目開(kāi)發(fā)中有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08Android編程實(shí)現(xiàn)扭曲圖像的繪制功能示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)扭曲圖像的繪制功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android圖形扭曲的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09Android UI組件AppWidget控件入門(mén)詳解
這篇文章主要介紹了Android UI組件AppWidget控件入門(mén),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Android自定義View實(shí)現(xiàn)九宮格圖形解鎖(Kotlin版)
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)九宮格圖形解鎖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09