美文网首页Android开发Android开发Android开发经验谈
扣丁学堂Android培训解析WebView控件支持地理位置定位

扣丁学堂Android培训解析WebView控件支持地理位置定位

作者: 994d14631d16 | 来源:发表于2018-08-01 14:38 被阅读10次

      今天扣丁学堂Android培训老师给大家详细介绍一下关于WebView从assets中加载html5页面,实现地理位置定位的方法,但是有一个html5页面的定位问题,发现在手机浏览器上html5是可以实现定位的,但是在webview中就无法定位了,以为html5的地理定位在webview中不可行,下面我们一起来看一下是如何实现的吧。

    ​  html5页面内容如下:

      

      点击这个按钮,获得您的坐标:

      试一下

      

      varx=document.getElementById("demo");

      functiongetLocation()

      {

      if(navigator.geolocation)

      {

      navigator.geolocation.watchPosition(showPosition);

      }

      else{

      x.innerHTML="Geolocationisnotsupportedbythisbrowser.";

      }

      }

      functionshowPosition(position)

      {

      x.innerHTML="Latitude:"+position.coords.latitude+

      "
    Longitude:"+position.coords.longitude;

      }

      后来又在网上查了查,发现,需要设置一些东西。设置websetting的属性:

      webView.setWebViewClient(newWebViewClient());

      //webView.loadUrl("http://news.baidu.com/");

      webView.loadUrl("file:///android_asset/index.html");

      WebSettingswebSettings=webView.getSettings();

      webSettings.setJavaScriptEnabled(true);

      /**

      *以下部分可以不要

      */

      ////启用数据库

      //webSettings.setDatabaseEnabled(true);

      //Stringdir=this.getApplicationContext().getDir("database",Context.MODE_PRIVATE).getPath();

      //

      ////启用地理定位

      //webSettings.setGeolocationEnabled(true);

      ////设置定位的数据库路径

      //webSettings.setGeolocationDatabasePath(dir);

      /**

      *此处很重要,必须要

      */

      //***最重要的方法,一定要设置,这就是出不来的主要原因

      webSettings.setDomStorageEnabled(true);

      webView.setWebChromeClient(newWebChromeClient(){

      //配置权限(同样在WebChromeClient中实现)

      @Override

      publicvoidonGeolocationPermissionsShowPrompt(Stringorigin,

      Callbackcallback){

      callback.invoke(origin,true,false);

      super.onGeolocationPermissionsShowPrompt(origin,callback);

      }

      });

      //在Androidmanifest.xml中开启权限

      

      

      

      在某些限制应用定位权限的手机中,需要开启应用的定位权限,否则会定位失败

      问题解决!

      特别试了试:

      同时打开网络和GPS可以定位,获得的是经纬度信息。

      只打开网络可以定位,只打开GPS也可以定位。

      关闭网络和GPS也可以定位。

      由此可见,是由地理位置定位所得,只能获得经纬度信息。

      若要获得详细的地址信息,需要调用地图API实现。

      以上这篇Android中WebView控件支持地理位置定位方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持扣丁学堂。

    相关文章

      网友评论

        本文标题:扣丁学堂Android培训解析WebView控件支持地理位置定位

        本文链接:https://www.haomeiwen.com/subject/zgfrvftx.html