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

android中webview定位問題示例詳解

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

前言

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

京東首頁

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

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

三步走戰(zhàn)略:

一、獲取權限

android 6.0 以后,需要動態(tài)的獲取位置或者存儲權限,按照各自的愛好放置位置。我是應用開啟初始化的時候,放在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(),"沒有權限,請手動開啟定位權限",Toast.LENGTH_SHORT).show();
  // 申請一個(或多個)權限,并提供用于回調返回的獲取碼(用戶定義)
  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 設置(復制了別人代碼)

WebView webView = (WebView)findViewById(R.id.webview); 
WebSettings webSettings = webView.getSettings(); 
 
//webview支持js腳本 
webSettings.setJavaScriptEnabled(true); 
 
//啟用數據庫 
webSettings.setDatabaseEnabled(true); 
 
//設置定位的數據庫路徑 
String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); 
webSettings.setGeolocationDatabasePath(dir); 
 
//啟用地理定位 
webSettings.setGeolocationEnabled(true); 
 
//開啟DomStorage緩存 
webSettings.setDomStorageEnabled(true) 
 
//配置權限 
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); 
 
} 
}); 

三 網絡權限

 <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" />

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

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

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

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

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

參考網站:http://blog.csdn.net/cheunjq/article/details/54729875

總結

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

相關文章

最新評論

奈曼旗| 中阳县| 准格尔旗| 秀山| 武夷山市| 永年县| 霞浦县| 永新县| 枣强县| 宿州市| 龙岩市| 星子县| 温州市| 蕲春县| 安福县| 丰台区| 镇原县| 连州市| 盘锦市| 长沙县| 杭锦旗| 麻栗坡县| 枣阳市| 贡山| 钟祥市| 安龙县| 重庆市| 丰镇市| 大庆市| 福安市| 莱州市| 信宜市| 阿合奇县| 长乐市| 十堰市| 凌云县| 镇坪县| 潞城市| 顺平县| 鄱阳县| 漠河县|