uni-app 安卓本地打包时,访问高德地图和 uni.chooseLocation 打开地图权限配置问题

  • Uniapp中使用高德地图的方式

"uni.openLocation"  打开地图,显示坐标位置

"uni.getLocation"  获取当前设备的定位信息

"uni.chooseLocation"  打开地图,并可以选择一个定位。uniapp的一个组件,用 nvue页面实现的。

  •  高德地图中申请key

申请网址:https://lbs.amap.com/?ref=https://console.amap.com/dev/index

  • Android studio中高德地图权限配置

配置时请查看最新官网配置教程: uni小程序SDK

Androidmainfest.xml 文件需要修改的项

<application
    android:allowBackup="true"
    android:allowClearUserData="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true">
        
        // 要填写的内容
        <meta-data android:name="com.amap.api.v2.apikey\" android:value="申请的appkey"/>
        <service android:name="com.amap.api.location.APSService"></service>

</application>
需要在 application 节点前添加权限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> // 允许应用程序获取粗略的位置信息,使用网络或其他无线技术。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> // 允许应用程序获取精确的位置信息,使用全球定位系统 (GPS) 或其他无线技术。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> // 允许应用程序访问WiFi网络状态信息。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> // 允许应用程序访问网络连接状态信息。
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> // 允许应用程序改变WiFi连接状态。
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> // 允许应用程序读取设备电话状态和身份识别信息。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> // 允许应用程序写入外部存储设备,如SD卡。
<uses-permission android:name="android.permission.INTERNET"/> // 允许应用程序访问互联网。
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> // 允许应用程序挂载和卸载可移动存储设备,如SD卡。
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission> // 允许应用程序读取系统日志文件。
<uses-permission android:name="android.permission.WRITE_SETTINGS"/> // 允许应用程序修改系统设置。

// 添加上方内容

<application
    android:allowBackup="true"
    android:allowClearUserData="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true">
      .......
</application>

注意事项:

高德地图使用的 appkey 和打包使用的包名及签名文件存在对应关系,填写时请注意。填写错误会导致地图无法正常使用。

  • dcloud_properties.xml文件需要修改的项

features节点下添加
dcloud_properties.xml 文件在 assets/data 目录下

<feature name="Maps" value="io.dcloud.js.map.amap.JsMapPluginImpl"/>  // 关于地图功能的配置,这个特性可以让应用程序使用地图功能

确认 Geolocation 的存在,没有的话,添加

<feature name="Geolocation" value="io.dcloud.js.geolocation.GeolocationFeatureImpl"/>  // 关于地理定位功能的配置

  •  lib中aar的复制

    从 Android-SDK@3.3.5.81188_20211230\SDK\libs 目录下找相应 aar,复制到 Android studio 本地项目 libs 目录下。
    
    
    "amap-libs-release.aar" // 3.7.6开始不再提供"amap-libs-release.aar"文件。改为gradle集成。"weex_amap-release.aar"或"map-amap-release.aar"需要继续集成到项目中
    
    "geolocation-amap-release.aar"
    
    "weex_amap-release.aar" // 如果是 在 nvue文件中使用 高德map,需要这个aar
    
    "map-amap-release.aar" // 如果是 在 vue文件中使用 高德map,需要这个aar
    
    
    注:如果是 在 vue和nvue文件中都有使用 高德map,那就需要这两个aar ("weex_amap-release.aar" 和 "map-amap-release.aar") 在使用了"uni.chooseLocation"的情况下,因为"uni.chooseLocation"是nvue实现的,要复制"weex_amap-release.aar"这个包。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值