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

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

问题:最近因为公司需求,放弃高德、百度地图的定位,使用系统定位来进行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中处理经纬度

经纬度处理代码 提取码:xf5k
解压直接放到 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 的定位结果

与安卓交互的代码 提取码:kx5r
(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
      });
     }
    );
   },

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/992859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存