溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在android中實(shí)現(xiàn)webview定位

發(fā)布時(shí)間:2021-04-08 16:35:36 來源:億速云 閱讀:480 作者:Leah 欄目:移動(dòng)開發(fā)

今天就跟大家聊聊有關(guān)怎么在android中實(shí)現(xiàn)webview定位,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、獲取權(quán)限

android 6.0 以后,需要?jiǎng)討B(tài)的獲取位置或者存儲(chǔ)權(quán)限,按照各自的愛好放置位置。我是應(yīng)用開啟初始化的時(shí)候,放在MainActivity中的OnCreate方法里。

 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
  != PackageManager.PERMISSION_GRANTED
  || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
  != PackageManager.PERMISSION_GRANTED
  || ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
  != PackageManager.PERMISSION_GRANTED) {
  Toast.makeText(getApplicationContext(),"沒有權(quán)限,請(qǐng)手動(dòng)開啟定位權(quán)限",Toast.LENGTH_SHORT).show();
  // 申請(qǐng)一個(gè)(或多個(gè))權(quán)限,并提供用于回調(diào)返回的獲取碼(用戶定義)
  ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
  return false;
 }

二、webview setting 設(shè)置(復(fù)制了別人代碼)

WebView webView = (WebView)findViewById(R.id.webview); 
WebSettings webSettings = webView.getSettings(); 
 
//webview支持js腳本 
webSettings.setJavaScriptEnabled(true); 
 
//啟用數(shù)據(jù)庫 
webSettings.setDatabaseEnabled(true); 
 
//設(shè)置定位的數(shù)據(jù)庫路徑 
String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); 
webSettings.setGeolocationDatabasePath(dir); 
 
//啟用地理定位 
webSettings.setGeolocationEnabled(true); 
 
//開啟DomStorage緩存 
webSettings.setDomStorageEnabled(true) 
 
//配置權(quán)限 
webView.setWebChromeClient(new WebChromeClient() { 
 @Override 
 public void onReceivedIcon(WebView view, Bitmap icon) { 
 super.onReceivedIcon(view, icon); 
 
} 
 
@Override 
public void onGeolocationPermissionsShowPrompt(String origin,Callback callback) { 
 callback.invoke(origin, true, false); 
 super.onGeolocationPermissionsShowPrompt(origin, callback); 
 
} 
});

三 網(wǎng)絡(luò)權(quán)限

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

看完上述內(nèi)容,你們對(duì)怎么在android中實(shí)現(xiàn)webview定位有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI