兼容端
安卓 | 苹果 | Web | 鸿蒙 | 小程序 |
---|---|---|---|---|
✅ | ❌ | ❌ | ❌ | ❌ |
使用示例
Turbo UI
示例 +uni-app x
版本
vue
<script setup lang="uts">
import { TALocationApi,TALocationOptions,TALocationResult,TALocationData } from "@/uni_modules/t-alocation-api"
const tALocationApi = new TALocationApi()
const getLocation = () => {
tALocationApi.getLocation({
once: true,
needAddress: true,
isWifiActiveScan: true,
success: (result: TALocationResult) => {
console.log(result)
},
fail: (result: TALocationResult) => {
console.log(result)
}
} as TALocationOptions)
}
const stopLocation = () => {
tALocationApi.stopLocation({
success: (result: TALocationResult) => {
console.log(result)
},
fail: (result: TALocationResult) => {
console.log(result)
}
} as TALocationOptions)
}
const requestPermission = () => {
tALocationApi.requestPermission({
success: (result:TALocationResult) => {
console.log(result)
},
fail: (result: TALocationResult) => {
console.log(result)
}
} as TALocationOptions)
}
onReady(() => {
TALocationApi.updatePrivacyAgree(true)
TALocationApi.updatePrivacyShow(true,true)
})
</script>
uni-app
setup 版本
vue
<script setup>
import { TALocationApi,TALocationOptions,TALocationResult,TALocationData } from "@/uni_modules/t-alocation-api"
const getLocation = () => {
tALocationApi.getLocation({
once: true,
needAddress: true,
isWifiActiveScan: true,
success: (result) => {
data.value.address = result.data.address
data.value.latitude = result.data.latitude
data.value.longitude = result.data.longitude
data.value.country = result.data.country
data.value.province = result.data.province
data.value.city = result.data.city
data.value.district = result.data.district
data.value.street = result.data.street
data.value.adCode = result.data.adCode
data.value.cityCode = result.data.cityCode
},
fail: (result) => {
console.log(result)
}
})
}
const stopLocation = () => {
tALocationApi.stopLocation({
success: (result) => {
console.log(result)
},
fail: (result) => {
console.log(result)
}
})
}
const requestPermission = () => {
tALocationApi.requestPermission({
success: (result) => {
console.log(result)
},
fail: (result) => {
console.log(result)
}
})
}
onReady(() => {
TALocationApi.updatePrivacyAgree(true)
TALocationApi.updatePrivacyShow(true,true)
})
</script>
暴露的类型
ts
/**
* @description 定位数据
* @property {Number} latitude 纬度
* @property {Number} longitude 经度
* @property {String} address 地址信息
* @property {String} country 国家
* @property {String} province 省
* @property {String} city 市
* @property {String} district 区县
* @property {String} street 街道
* @property {Number} cityCode 城市编码
* @property {Number} adCode 地区编码
*/
export type TALocationData = {
latitude?: number;
longitude?: number;
address?: string;
country?: string;
province?: string;
city?: string;
district?: string;
street?: string;
adCode?: string;
cityCode?: string;
}
/**
* @description 返回
* @property {Number} code 状态码
* @property {String} msg 状态消息
* @property {TALocationData} data 定位数据
*/
export type TALocationResult = {
code: number;
msg: string;
data?: TALocationData
}
/**
* @description 参数配置
* @property {Number} locationMode 定位模式
* @value 1 高精度
* @value 2 低消耗
* @value 3 仅设备
* @property {Boolean} once 单次定位,不能与onceLatest同时使用
* @property {Boolean} onceLatest 单次高精度定位,不能与once同时使用
* @property {Number} interval 连续定位间隔时间,单位ms,默认2000
* @property {Boolean} needAddress 是否返回地址描述,默认true
* @property {Boolean} mockEnable 设置是否允许模拟位置,默认为true
* @property {Boolean} httpTimeOut 设置定位请求超时时间,默认为30秒,单位ms
* @property {Boolean} locationCacheEnable 设置是否开启定位缓存机制
* @property {Boolean} isWifiActiveScan 是否会主动刷新设备wifi模块,获取到最新鲜的wifi列表(wifi新鲜程度决定定位精度);false表示不主动刷新。
* @property {Number} protocol 用于设定网络定位时所采用的协议,提供http/https两种协议。
* @value 1 HTTP
* @value 2 HTTPS
*/
export type TALocationOptions = {
locationMode?: number;
once?: boolean;
onceLatest?: boolean;
interval?: number;
needAddress?: boolean;
mockEnable?: boolean;
httpTimeOut?: boolean;
locationCacheEnable?: boolean;
isWifiActiveScan?: boolean;
protocol?: number;
success?: (result: TALocationResult) => void;
fail?: (result: TALocationResult) => void;
}