android中webview定位问题示例详解

 更新时间:2017年12月05日 08:43:13   作者:天天星期天  
这篇文章主要给大家介绍了关于android中webview定位问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

前言

现在很多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); 
 
} 
}); 

三 网络权限

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

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

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

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

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

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

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

总结

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

相关文章

  • 手把手教你Android全局触摸事件监听

    手把手教你Android全局触摸事件监听

    这篇文章主要介绍了Android全局触摸事件监听,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Android实现随意拖动View效果的实例代码

    Android实现随意拖动View效果的实例代码

    这篇文章主要介绍了Android实现随意拖动View效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Android开发之菜单(menu)用法实例分析

    Android开发之菜单(menu)用法实例分析

    这篇文章主要介绍了Android开发之菜单(menu)用法,结合实例形式较为详细的分析了Android菜单的实现步骤与相关操作技巧,需要的朋友可以参考下
    2017-03-03
  • Android Activity切换动画详解及实例

    Android Activity切换动画详解及实例

    这篇文章主要介绍了Android Activity切换动画overridePendingTransition详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • Android开发实现跟随手指的小球效果示例

    Android开发实现跟随手指的小球效果示例

    这篇文章主要介绍了Android开发实现跟随手指的小球效果,涉及Android图形绘制、事件响应、界面布局等相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • Android显式Intent与隐式Intent的使用详解

    Android显式Intent与隐式Intent的使用详解

    Intent的中文意思是“意图,意向”, Intent对Android的核心和灵魂,是各组件之间的桥梁。四大组件分别为Activity 、Service、BroadcastReceiver、ContentProvider。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用
    2022-09-09
  • Android Fragment使用之实例演示

    Android Fragment使用之实例演示

    本文主要介绍Android Fragment的知识,这里整理了详细资料及简单示例代码,有需要的朋友可以参考下
    2016-09-09
  • Kotlin StateFlow单数据更新热流设计与使用介绍

    Kotlin StateFlow单数据更新热流设计与使用介绍

    StateFlow当值发生变化,就会将值发送出去,下流就可以接收到新值。在某些场景下,StateFlow比LiveData更适用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • 掌握Android Handler消息机制核心代码

    掌握Android Handler消息机制核心代码

    该文主要是分析Handler消息机制的关键源码,文章会从对handler有一些基本的认识开始介绍,内容详细,感兴趣的小伙伴可以参考下
    2021-09-09
  • android通过led实现手电筒功能

    android通过led实现手电筒功能

    这篇文章主要为大家详细介绍了android通过led实现手电筒功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09

最新评论