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 好了现在你要把 C:\Users\.android 目录下的 debug.keystore 拷贝到上面步骤中的bin目录下
2.1.3 此时打开cmd,进到2.1.1那一步的bin目录
键入 keytool -list -v -keystore debug.keystore
此时你会看到(红框中的SHA1也就是你在高德控制台创建项目是要填写的SHA1了),高高高兴兴的填写上去就好了。
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.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
上面的package里的就是我们要找的PackageName了
3.2 在这个.xml文件中加写代码
<application>
......
<meta-data android:name="com.nativebase(也就是上面那个package里的内容)" android:value="你的高德地图的key" />
</applicaiton>
3.3 在高德地图中同意协议,点击确认,成功了!!!这个key也就是android:value里要写的
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 (
......
);
}
}