uni-app离线打包,配置了高德,参考uni-app离线打包之Geolocation解决方案,可以通过Geolocation获取经纬度等,但是在使用了map组件后,还是提示:
打包时未添加maps模块,请参考http://ask.dcloud.net.cn/article/283
如下图:
解决方法如下:
一、百度地图
将在uniapp 3.6.3安卓离线打包教程提到的下载的SDK\libs目录下的jar/aar文件:
baidu-libs-release.aar、map-baidu-release.aar
拷贝到 工程/simpleDemo/libs 目录下(百度地图暂时不支持 nvue map 标签)。
Androidmainfest.xml文件需要修改的项
需要在application节点前添加权限
<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_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.READ_LOGS"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
application节点下配置如下代码
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="%appkey_android%"></meta-data> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service>
dcloud_properties.xml文件(文件在 工程/simpleDemo/src/main/assets/data 目录下)需要修改的项:
features节点下添加:
<feature name="Maps" value="io.dcloud.js.map.JsMapPluginImpl"></feature>
services节点下添加:
<service name="Maps" value="io.dcloud.js.map.MapInitImpl" />
二、高德地图
将在uniapp 3.6.3安卓离线打包教程提到的下载的SDK\libs目录下的jar/aar文件:
AMap3DMap_XXX_AMapSearch_XXX.jar(XXX为版本号)、AMap_Location_XXX.jar、weex_amap-release.aar AMap3DMap_XXX_AMapSearch_XXX.jar(XXX为版本号)、AMap_Location_XXX.jar、map-amap-release.aar
拷贝到 工程/simpleDemo/libs 目录下。
注意:3.3.6及以下版本需要使用amap-libs-release.aar代替AMap3DMap_XXX_AMapSearch_XXX.jar(XXX为版本号)、AMap_Location_XXX.jar
Androidmainfest.xml文件需要修改的项
需要在application节点前添加权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <uses-permission android:name="android.permission.READ_LOGS"></uses-permission> <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
application节点下配置如下代码:
<meta-data android:name="com.amap.api.v2.apikey\" android:value="%appkey_android%\"/> <service android:name="com.amap.api.location.APSService"></service>
注意事项
高德地图使用的appkey和打包使用的包名及签名文件存在对应关系,填写时请注意。填写错误会导致地图无法正常使用。
dcloud_properties.xml文件(文件在 工程/simpleDemo/src/main/assets/data 目录下)需要修改的项
features节点下添加
<feature name="Maps" value="io.dcloud.js.map.amap.JsMapPluginImpl"></feature>
三、谷歌地图
将在uniapp 3.6.3安卓离线打包教程提到的下载的SDK\libs目录下的jar/aar文件:
weex_google-map-release.aar
拷贝到 工程/simpleDemo/libs 目录下。
app目录的build.gradle添加依赖
implementation 'com.google.android.gms:play-services-maps:18.0.1'
Androidmainfest.xml文件需要修改的项
需要在application节点前添加权限
<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_NETWORK_STATE /> <uses-permission android:name=android.permission.INTERNET /> <uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE /> <uses-permission android:name=android.permission.ACCESS_LOCATION_EXTRA_COMMANDS />
application节点下配置如下代码:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="%api_key%" />