uniapp 离线打包 使用系统定位,无需注册高度、百度地图

问题:最近因为公司需求,放弃高德、百度地图的定位,使用系统定位来进行APP的定位功能开发;前端只能获取定位的经纬度,处理办法一般是通过第三方的sdk或后端接口来进行经纬度的中文地址解析.

解决办法:由于环境原因,以上方式都不行;安卓开发是没有以上问题的,可以对系统定位的经纬度进行中文解析。注意:部分机型解析不出来

1、在Android Studio 配置 AndroidManifest.xml文件中的系统定位的权限

离线打包系统定位配置

    <!--定位权限-->
    <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"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.READ_LOGS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />

2、在Android Studio中处理经纬度

经纬度处理代码 提取码:3146

解压直接放到 java文件夹中
在这里插入图片描述

3、配置

在 AndroidManifest.xml 中配置如下

  android:name="io.dcloud.simple.test.MyApplication"
  tools:replace="android:name"
  tools:ignore="HardcodedDebugMode"

在 dcloud_properties.xml 中配置如下

  <!--处理系统自带的定位-->
  <feature name="elitetyc" value="com.example.H5PlusPlugin.ElitetycPluginTest"/>
  <feature name="AndroidBridge" value="io.dcloud.simple.test.AndroidBridge"/>

在这里插入图片描述
在这里插入图片描述

4、在 HBuilder X 中接收 Android Studio 的定位结果

与安卓交互的代码 提取码:3146

(1)导入

const AndroidBridge = require('@/util/plugin.js');
export default {
		data() {
			return {
				plugins: AndroidBridge,
			}
		}
}

(2)调用

getAddress(latitude,longitude) {
     this.plugins.CallAppFunc(
     [latitude,longitude],
     function(result) {
      uni.showToast({
       title: JSON.stringify(result),
       icon: 'none',
       duration: 5000
      });
     },
     function(result) {
      uni.showToast({
       title: result,
       icon: "none",
       duration: 5000
      });
     }
    );
   },

最后感谢大佬: 强哥、彬哥的帮助与贡献

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值