最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android中webview定位問題示例詳解

 更新時間:2017年12月05日 08:43:13   作者:天天星期天  
這篇文章主要給大家介紹了關(guān)于android中webview定位問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

現(xiàn)在很多App里都內(nèi)置了Web網(wǎng)頁(Hyprid App),比如說很多電商平臺,淘寶、京東、聚劃算等等

京東首頁

那么這種該如何實現(xiàn)呢?其實這是Android里一個叫WebView的組件實現(xiàn)的。

最近在做安卓的網(wǎng)頁開發(fā)。有一個頁面需要用到定位,但是一直定位獲取失敗。很難過。網(wǎng)上教程也很多,但是無一例外全部失敗。最后老夫花了3天時間,嘔心瀝血,終于研制出了解決方案。

三步走戰(zhàn)略:

一、獲取權(quán)限

android 6.0 以后,需要動態(tài)的獲取位置或者存儲權(quán)限,按照各自的愛好放置位置。我是應(yīng)用開啟初始化的時候,放在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)限,請手動開啟定位權(quán)限",Toast.LENGTH_SHORT).show();
  // 申請一個(或多個)權(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" />

網(wǎng)上的教程到這里就結(jié)束了。一般都會告訴你,朋友你定位能用了。然而我并不能用?。。?!

檢查來檢查去。沒啥毛病啊。一模一樣??!

四 build gradle (我用的是as )修改

自己app的build.gradle 里面一個targetSdkVersion 23 (為什么寫23 高德地圖告訴我的)

然后你的工程地圖能用了。

參考網(wǎng)站:http://blog.csdn.net/cheunjq/article/details/54729875

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論

锦州市| 孝义市| 保康县| 阿城市| 江口县| 二手房| 锦州市| 平湖市| 绩溪县| 麟游县| 瑞丽市| 青海省| 巴青县| 新营市| 铜川市| 娄底市| 郴州市| 大安市| 土默特左旗| 平安县| 水城县| 湖北省| 大庆市| 澜沧| 莫力| 英德市| 光泽县| 社会| 尼玛县| 开封县| 金沙县| 青州市| 邵武市| 宣威市| 江西省| 上思县| 镇原县| 滦平县| 许昌市| 黎城县| 昔阳县|