Android中WebView控件支持地理位置定位方法

发布时间:2026/11/5 11:09:16
Android中WebView控件支持地理位置定位方法 Android WebView从assets中加载html5页面实现地理位置定位有需要的朋友可以参考下。今天调研一个html5页面的定位问题发现在手机浏览器上html5是可以实现定位的但是在webview中就无法定位了。而我居然以为html5的地理定位在webview中不可行。html5页面内容如下代码语言javascript!DOCTYPEhtmlPUBLIC-//W3C//DTD HTML 4.01 Transitional//ENhttp://www.w3.org/TR/html4/loose.dtdhtmlheadmeta http-equivContent-Typecontenttext/html; charsetUTF-8/headbodyp iddemo点击这个按钮获得您的坐标/pbutton onclickgetLocation()试一下/buttonscriptvarxdocument.getElementById(demo);functiongetLocation(){if(navigator.geolocation){navigator.geolocation.watchPosition(showPosition);}else{x.innerHTMLGeolocation is not supported by this browser.;}}functionshowPosition(position){x.innerHTMLLatitude: position.coords.latitudebr / Longitude: position.coords.longitude;}/script/body/html后来又在网上查了查发现需要设置一些东西。设置websetting的属性代码语言javascriptwebView.setWebViewClient(newWebViewClient());//webView.loadUrl(http://news.baidu.com/);webView.loadUrl(file:///android_asset/index.html);WebSettings webSettingswebView.getSettings();webSettings.setJavaScriptEnabled(true);/** * 以下部分可以不要 */// //启用数据库// webSettings.setDatabaseEnabled(true);// String dir this.getApplicationContext().getDir(database, Context.MODE_PRIVATE).getPath();//// //启用地理定位// webSettings.setGeolocationEnabled(true);// //设置定位的数据库路径// webSettings.setGeolocationDatabasePath(dir);/** * 此处很重要必须要 *///***最重要的方法一定要设置这就是出不来的主要原因webSettings.setDomStorageEnabled(true);webView.setWebChromeClient(newWebChromeClient(){//配置权限同样在WebChromeClient中实现OverridepublicvoidonGeolocationPermissionsShowPrompt(String origin,Callback callback){callback.invoke(origin,true,false);super.onGeolocationPermissionsShowPrompt(origin,callback);}});//在Androidmanifest.xml中开启权限代码语言javascriptuses-permission android:nameandroid.permission.INTERNET/uses-permission android:nameandroid.permission.ACCESS_FINE_LOCATION/uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION/在某些限制应用定位权限的手机中需要开启应用的定位权限否则会定位失败问题解决特别试了试同时打开网络和GPS可以定位获得的是经纬度信息。只打开网络可以定位只打开GPS也可以定位。关闭网络和GPS也可以定位。由此可见是由地理位置定位所得只能获得经纬度信息。若要获得详细的地址信息需要调用地图API实现。更多Android进阶指南 可以扫码 解锁《Android十大板块文档》1.Android车载应用开发系统学习指南附项目实战2.Android Framework学习指南助力成为系统级开发高手3.2024最新Android中高级面试题汇总解析告别零offer4.企业级Android音视频开发学习路线项目实战附源码5.Android Jetpack从入门到精通构建高质量UI界面6.Flutter技术解析与实战跨平台首要之选7.Kotlin从入门到实战全方面提升架构基础8.高级Android插件化与组件化含实战教程和源码9.Android 性能优化实战360°全方面性能调优10.Android零基础入门到精通高手进阶之路敲代码不易关注一下吧。ღ( ´ᴗ )

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询