公司动态
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零基础入门到精通高手进阶之路敲代码不易关注一下吧。ღ( ´ᴗ )