react-native 获取定位react-native-amap-geolocation的使用

907 阅读3分钟

1. 安装依赖

yarn add react-native-amap-geolocation

2.引包使用

import { Platform, PermissionsAndroid } from 'react-native'  
import {init, Geolocation } from 'react-native-amap-geolocation'

async getLocation() {
        if(Platform.OS === 'android') {
            const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION)
            if (granted === PermissionsAndroid.RESULTS.GRANTED) {
                //设置高德key
                await init({
                   // ios: "9bd6c82e77583020a73ef1af59d0c759",
                   android: "7c9050abafa88e8ef98d7232c09ea258"   // 传入AMAP_KEY
                });
                Geolocation.getCurrentPosition(
                    ({location}) => {
                        console.log(location.address)
                        // 输出结果
                         // {
                        //     "accuracy": 50,
                        //      "adCode": "360111",
                        //       "address": "江西省南昌市青山湖区中兴路684号靠近中兴南昌科技园", 
                        //       "altitude": 0,
                        //     "city": "南昌市",
                        //     "cityCode": "0791",
                        //     "coordinateType": "GCJ02", 
                        //     "country": "中国", 
                        //     "description": "在中兴南昌科技园附近",
                        //     "district": "青山湖区",
                        //      "errorCode": 0, 
                        //     "errorInfo": "success", 
                        //     "gpsAccuracy": -1, 
                        //     "heading": 0, 
                        //     "latitude": 28.704892,
                        //     "locationDetail": "#id:ELA==#csid:8d8c9fcd85b644c4abc37f5d45bab687",
                        //     "locationType": 4, 
                        //     "longitude": 116.000978,
                        //     "poiName": "中兴南昌科技园",
                        //     "province": "江西省", 
                        //     "speed": 0, 
                        //     "street": "中兴路",
                        //     "streetNumber": "684号",
                        //     "timestamp": 1642753591692,
                        //     "trustedLevel": 1
                        // }
                    },
                    (error) => {
                        alert(JSON.stringify(error))
                       return this.setState({ error: error.message }, alert(error.message))
                    },
                    { enableHighAccuracy: true, timeout: 10000, maximumAge: 10000 }
                )
             }
        }
    }

    // 测试高德定位
    componentDidMount() {
        this.getLocation()
    }

3. 申请高度key

image.png

SHA1 获取 跳转链接

调试版的debug.keystore所在位置

image.png

查看命令

keytool -list -v -keystore E:\ReactNative\tanhua\android\app\debug.keystore

查看结果

别名: androiddebugkey
创建日期: 2014-1-1
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Android Debug, OU=Android, O=Unknown, L=Unknown, ST=Unknown, C=US
发布者: CN=Android Debug, OU=Android, O=Unknown, L=Unknown, ST=Unknown, C=US
序列号: 232eae62
有效期为 Wed Jan 01 06:35:04 CST 2014Wed May 01 06:35:04 CST 2052
证书指纹:
         MD5:  20:F4:61:48:B7:2D:8E:5E:5C:A2:3D:37:A4:F4:14:90
         SHA1: 5E:8F:16:06:2E:A3:CD:2C:4A:0D:54:78:76:BA:A6:F3:8C:AB:F6:25
         SHA256: FA:C6:17:45:DC:09:03:78:6F:B9:ED:E6:2A:96:2B:39:9F:73:48:F0:BB:6F:89:9B:83:32:66:75:91:03:3B:9C
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048RSA 密钥
版本: 3

发行版的

需在本地cmd中的 C:\Program Files\Java\jdk1.8.0_152\bin中执行 通过

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

输入密码(123456)自己写的

会生成一个my-release-key.keystore 文件,复制到android/app  (复制到.android目录)

查看命令

keytool -v -list -keystore E:\ReactNative\tanhua\android\app\my-release-key.keystore

结果

别名: my-key-alias
创建日期: 2022-1-21
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=liao, OU=liao, O=liao, L=liao, ST=liao, C=liao
发布者: CN=liao, OU=liao, O=liao, L=liao, ST=liao, C=liao
序列号: 3051076e
有效期为 Fri Jan 21 15:27:33 CST 2022Tue Jun 08 15:27:33 CST 2049
证书指纹:
         MD5:  E7:68:46:2E:C8:CF:F6:E2:C7:14:AD:AE:83:44:0D:8A
         SHA1: 06:03:E9:17:8B:39:D9:01:87:9A:FC:45:A2:AF:86:50:0C:E1:81:01
         SHA256: 50:57:FC:B0:62:C1:7A:44:F0:AA:A1:E1:D3:0F:C7:F2:46:AF:60:EB:34:DF:BF:FF:6A:D5:2A:88:41:2C:E3:9D
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048RSA 密钥
版本: 3