React Native(使用高德定位,仅限安卓)

1. 首先你需要登陆,跟随教程走,前几步比较简单

前几个简单的步骤网址如下
https://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key

2. 获取SHA1 (重头戏)

2.1 如果你用的是genymotion这种移动端模拟器的话

2.1.1 首先你要有JAVA的环境,然后找到它的bin目录下的keytool.exe
图2-1
2.1.2 好了现在你要把 C:\Users\.android 目录下的 debug.keystore 拷贝到上面步骤中的bin目录下
图2-2
2.1.3 此时打开cmd,进到2.1.1那一步的bin目录
键入 keytool -list -v -keystore debug.keystore

此时你会看到(红框中的SHA1也就是你在高德控制台创建项目是要填写的SHA1了),高高高兴兴的填写上去就好了。

03.png

2.2 如果你要用真机测试的话

就和2.1截然不同了...

2.2.1 当你运行rn项目,然后手机会自己弹出测试的界面,退出界面你会发现这个测试界面成了一个APP一样的东东,记住这个东东,后面要用
2.2.2 首先急需要下载一个APP,这个APP可以直接查看SHA1哦
链接: https://pan.baidu.com/s/1r6FxPgJzSC6sC7pBpThUjQ
提取码: r1qw

当然你也可以去CSDN下载,到淘宝花个几毛钱找个待下载,链接送给大家,当然这个和上面的链接是同样的文件,这里只是为了以防万一
https://download.csdn.net/detail/gywuhengy/9817286
2.2.3 安装完后打开,然后在这个APP中找到你测试页面生产的那个APP,点一下,就看到SHA1了
图2-3

图2-4
2.2.3 惊不惊喜,意不意外,哈哈哈,好了接下来该轮到找 PackageName 了
2.2.4 在这里插一句,如果你用了真机测试,找SHA1却用了2.1的方法,那么你就会收到意想不到的错误
7  KEY鉴权失败。 请仔细检查key绑定的sha1值与apk签名sha1值是否对应,或通过高频问题查找相关解决办法。

3 获取PackageName

3.1 找到你的rn项目,进入android/app/src/main/AndroidMainfest.xml

图3-1
上面的package里的就是我们要找的PackageName了

3.2 在这个.xml文件中加写代码

<application>
    ......
    <meta-data android:name="com.nativebase(也就是上面那个package里的内容)" android:value="你的高德地图的key" />
</applicaiton>

3.3 在高德地图中同意协议,点击确认,成功了!!!这个key也就是android:value里要写的

图3-2

4 最后让我们测试吧

4.1 测试代码

测试代码
import { init, Geolocation } from 'react-native-amap-geolocation'
import { PermissionsAndroid } from 'react-native'

const Stack = createStackNavigator();

class App extends Component{

    componentDidMount(): void {
        this.getGeo();
    }

    async getGeo() {
        await PermissionsAndroid.requestMultiple([
            PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
            PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
        ]);

        await init({
            // ios: "9bd6c82e77583020a73ef1af59d0c759",
            android: "你的key"
        });

        Geolocation.getCurrentPosition((geo) => {
            console.log(geo)
        }, (e) => {
            console.log(e)
        })
    }

    render() {
        return (
            ......
        );
    }
}

4.2 如果是真机的话进入测试页面后摇一摇手机(别把手机摇掉了),会弹出页面,点击debug;如果是虚拟机的话是有选项的,这个去网上搜一下就好啦,最后进的界面和真机摇出来的是一样的,后面操作也是一样的。

4.3 此时你的移动端测试页上面有了界面,然后打开chrome,输入http://localhost:8081/debugger-ui,进入rn的浏览器测试界面,然后F12,不出意外的话你可以在控制台看到上面console.log输出的内容,也就是你的定位信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。