美文网首页
Android WebView支持定位

Android WebView支持定位

作者: 静水红阳 | 来源:发表于2019-11-26 14:43 被阅读0次

问题描述

部分H5界面会通过JS代码获取位置信息,这个界面在手机浏览器上能正常获取到位置,但是通过WebView打开时却不能获取到具体的位置,查询了部分文档,发现如果要WebView支持H5获取定位,需要做如下的改动。

具体步骤

一、添加定位权限

获取位置首先需要获取定位权限,示例代码如下:

 <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

当然Android6.0以上需要动态获取权限,可以在进入到WebView页面的时候先获取权限,获取权限之后再调用WebView.loadUrl()

二、WebView Setting配置

在WebSetting中需要WebView支持JS和location获取,示例代码如下:

webSettings?.javaScriptEnabled = true     //支持js
webSettings?.setGeolocationEnabled(true)      //支持获取位置信息

除此之外,还需要在重写webChromeClient中的onGeolocationPermissionsShowPrompt()方法 ,使其获取位置信息,示例代码如下:

override fun onGeolocationPermissionsShowPrompt(
                origin: String?,
                callback: GeolocationPermissions.Callback?
            ) {
            //获取位置信息
                callback?.invoke(origin,true,true)
                super.onGeolocationPermissionsShowPrompt(origin, callback)
            }

其他问题

Http无法获取到位置

在测试之后发现http开头的网址无法获取到信息,但是https的网址却能够获取到,查阅官方文档之后得到了如下结论:
——对于Android N之后对于非安全源地址将会自动拒绝获取位置。

因此对于http的网址想要获取具体的位置信息,需要将Http升级到Https。

相关文章

  • Android WebView支持定位

    问题描述 部分H5界面会通过JS代码获取位置信息,这个界面在手机浏览器上能正常获取到位置,但是通过WebView打...

  • 混合开发-文件预览功能

    实测:IOS:webview 支持 文件通过a链接打开预览Android: webview 受限,需要原生支持通过...

  • Android Webview的一些坑

    Android Webview的一些坑 前言 Webview在开发中,总会遇到各种兼容,崩溃,支持各种功能的问题。...

  • Android H5 js webView初体验

    Android及iOS的webview的引擎都是webkit,对H5提供支持.WebView可以使得网页轻松的内嵌...

  • android webview ViewPort 支持

    antd mobile 高清方案在手机浏览器中显示没有问题,但在 webview 中却显示的非常大,原来是 and...

  • android webview 定位问题

    最近在做安卓的网页开发。有一个页面需要用到定位,但是一直定位获取失败。很难过。网上教程也很多,但是无一例外全部失败...

  • webview和js之间的交互

    Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持...

  • 2019-10-30

    android webview 支持html5 video 播放视频在自定义的 WebChromeClient 中...

  • react-native-webview支持type="file

    React Native 中的webView组件在Android下不支持 input type="file",也就...

  • JsBridge开源库介绍

    JsBridge轻量可扩展 Android WebView 和 Javascript 双向交互框架 特点 支持 J...

网友评论

      本文标题:Android WebView支持定位

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