前言

现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等

京东首页

那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。

最近在做安卓的网页开发。有一个页面需要用到定位,但是一直定位获取失败。很难过。网上教程也很多,但是无一例外全部失败。最后老夫花了3天时间,呕心沥血,终于研制出了解决方案。

三步走战略:

一、获取权限

android 6.0 以后,需要动态的获取位置或者存储权限,按照各自的爱好放置位置。我是应用开启初始化的时候,放在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);  } }); 

三 网络权限

         

网上的教程到这里就结束了。一般都会告诉你,朋友你定位能用了。然而我并不能用啊!!!

检查来检查去。没啥毛病啊。一模一样啊!

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

自己app的build.gradle 里面一个targetSdkVersion 23 (为什么写23 高德地图告诉我的)

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

参考网站:http://blog.csdn.net/cheunjq/article/details/54729875

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

更多相关文章

  1. Android音视频之视频采集(系统API预览)
  2. android之论setContentView(R.layout.activity_main)位置的重要
  3. 利用 CMake 和 NDK 交叉编译 Android(安卓)下的可执行程序
  4. android 定位的4种方式介绍
  5. Android中Canvas绘图之Shader使用图文详解
  6. “哎哟!蛮吊的” 之 Android(安卓)BroadCastReceiver详解
  7. Android中使用GPS和NetWork获取定位信息
  8. Android筆記
  9. React-Native之Android(6.0及以上)权限申请

随机推荐

  1. JavaWeb系统自学,全栈学习路线图,百度网盘
  2. flex容器中的四个属性
  3. 函数的声明和定义
  4. 选择器优先级、模块化样式组件、伪类选择
  5. [go-linq]-Go的.NET LINQ式查询方法
  6. 携程实时智能检测平台实践
  7. 最新整理linux云计算课程大纲笔记
  8. flex项目上的三个属性及移动商城首页的页
  9. 关系图谱在贝壳找房风控体系的应用与实践
  10. 剪切时死机文件丢失了的找到办法