今天又遇到一处疑难杂症:在M3外拓管理里面有一个外拓人员签到的功能。研发的同事使用的是百度的地图,测试发现在电脑浏览器和微信浏览器里面都是可以生效的,但是包了Android的外壳后却不生效了,包了iOS外壳的也不能实现定位!

在Android里面提示无法获取到位置,大致如下图所示:

又一处疑难杂症的折腾笔记:Android内嵌html5获取定位信息_第1张图片

相比上次折腾了两天,费了好几个人去研究的WebView和js的交互实现Android内嵌h5打电话的功能,这次要说的这个问题还是比较简单的。如果你也遇到了这个问题,那么你是幸运的。下面我总结下这个问题的解决步骤:

1、声明联网权限和获取位置的权限,获取用户的授权:

  


2、在Android壳源码里面启用javascript支持,启用地理定位,启用定位数据库,启用插件支持,启用js自动打开窗口授权;

// 启用javascriptcontentWebView.getSettings().setJavaScriptEnabled(true);//启用地理定位contentWebView.getSettings().setGeolocationEnabled(true);String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();  //设置定位的数据库路径  contentWebView.getSettings().setGeolocationDatabasePath(dir);  contentWebView.getSettings().setPluginsEnabled(true);contentWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

3、WebChromeClient的子类中重写onGeolocationPermissionsShowPrompt方法

public void onGeolocationPermissionsShowPrompt(String origin, android.webkit.GeolocationPermissions.Callback  callback) {super.onGeolocationPermissionsShowPrompt(origin, callback);callback.invoke(origin, true, false);}


如下图,问题解决!!

又一处疑难杂症的折腾笔记:Android内嵌html5获取定位信息_第2张图片

更多相关文章

  1. android 9.0 SD卡权限问题 文件管理器没有权限
  2. 关于Android动态权限的一些疑问
  3. Android 网络权限配置
  4. Android文件浏览器的开发
  5. Android App 权限一点知识
  6. android app请求获取root权限
  7. Android 3.0之后开机无法接收系统广播权限原因
  8. Android 权限控制代码分析

随机推荐

  1. Android(安卓)应用自动启动的两种方法(开
  2. android实现排队任务
  3. android水波纹涟漪效果的实现 ---- 入门+
  4. Android(安卓)Butterknife 框架源码解析(1
  5. 第二届 Android(安卓)应用开发中国大学生
  6. Android解析带转义符的JSON
  7. 使用webView访问https的url-处理SslError
  8. Android(安卓)如何设置RadioButton中图片
  9. 【Android】Animation之震动效果动画在登
  10. Android控件组合应用一