• cordova安卓定位


    安卓定位

    cordova官方提供的插件cordova plugin add cordova-plugin-geolocation不支持安卓定位,支持ios定位。

    参考项目

    * 方案一百度地图定位

    • 注意在你没有获得百度提供的密钥之前不要去安装百度地图插件,因为在你输入安装命令行的时候,需要输入密钥参数,如果不输入就无法安装,如果乱输入,最后调用插件的时候就不会成功,成功也是不稳定的。

    * 申请密钥

    使用百度方案,需要获取百度提供的密钥,才能定位。
    密钥申请,需先创建应用
    有两个问题需要解决:

    * 必填项发布版SHA1

    在你打包的apk后,必须要对apk进行签名操作,如果apk未经过签名,是无法在安卓设备上进行安装的。这样设计的我听说是未了维护开发者的权益,所以才加上这个步骤的。

    • 在这里需要区分好发布版SHA1和开发版SHA1

    开发板SHA1:
    在cordova的打包中,最后生成的debug.apk会被自动签名,而要想知道debug.pak的签名信息,默认会在C:Users.android关键实在.android文件夹里(本人的目录位置C:Users.android)的debug.keystore文件里。
    要想查看里面的信息需要打开cmd切换到debug.keystore文件的目录里:
    然后输入:keytool -list -v -keystore debug.keystore
    这是需要输入密钥,默认的密钥是:android

    发布版SHA1:
    发布版的SHA1获取,
    1.首先需要我们先创建一个签名文件,打开cmd直接输入:

    keytool -genkey -v -keystore D:CordovaTestMyTestplatformsandroidmytest-release.keystore -alias mytest -keyalg RSA -validity 20000
    
    keytool -genkey -v -keystore [存放签名文件的路径(自己决定)][签名文件名] -alias [别名] -keyalg RSA -validity [证书有效的天数]
    

    D:CordovaTestMyAppmytest.keystore:表示生成的证书及其存放路径,如果直接写文件名则默认生成在用户主目录下;
    -alias mytest :表示证书的别名是mytest;
    -keyalg RSA:表示采用的RSA算法;
    -validity 20000:表示证书的有效期是20000天。

    2.确认后,接下来需要输入设置密钥,输入过程密码是不可见的,自己记住就好。接下来就是一波填写了,看个人情况,后面的都是可选项。后面会有一项让你确认以上信息是否正确,填n会返回到密钥设置那一步,重新填写。填y确认到下一步,再回车确认。

    这时候你就会发现你的存放签名文件的目录多了一个mytest-release.keystore文件,证明你已经成功的创建了一个签名文件。
    查看里面的信息同debug的一样keytool -list -v -keystore mytest-release.keystore,只是改个名字。输入刚刚自己设置的密钥

    现在你已经有了一个自己的签名,接下来你需要将你的签名绑定到你的apk里面,我们绑定的签名当然是要绑定到发布版上,默认cordova打包好的release是不自动绑定签名的。废话不多说,记下来绑定签名。

    3.绑定签名
    首先打包出release版的apk,在cordova的项目目录输入:cordova build android --release,打包好后在MyTestplatformsandroidappuildoutputsapk elease目录下查看有一个app-release-unsigned.apk文件

    将你之前创建的签名文件mytest-release.keystore放到MyTestplatformsandroidappuildoutputsapk elease目录下

    检查apk是否已经签名:
    jarsigner -verify app-release-unsigned.apk
    app-release-unsigned.apk: 需要检测的apk名

    将创建好的签名文件,绑定到apk上:

    jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore mytest-release.keystore -storepass abcdefg -signedjar ling.apk app-release-unsigned.apk mytest
    
    jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore [你的keystore] -storepass [keystore的密码] -signedjar [签名后的apk] [未签名的apk] [keystore的别名]
    
    • 包名:
      在你创建cordova项目的时候已经定义了
      如:cordova create hello com.example.hello HelloWorld
      com.example.hello HelloWorld:就是你的包名
      hello:项目名
      如果你是这样创建cordova项目的cordova create hello默认的包名会是io.cordova.hellocordova,如果你不确定,可以在D:CordovaTestMyAppplatformsandroidappuildintermediatesmanifestsfulldebug目录下的AndroidManifest.xml文件进行查看。
      或者在D:CordovaTestMyAppplatformsandroidappuildintermediatesmanifestsfull elease目录下查看AndroidManifest.xml文件查看package的值。

    至此我们的开发板SHA1,发布版SHA1,和包名已经搞定了。

    * 安装插件

    官方介绍地址

    官方代码:
    cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="<API_KEY_ANDROID>" --variable IOS_KEY="<API_KEY_IOS>"
    注释:
    cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="安卓密钥值" --variable IOS_KEY="ios密钥值"
    本人实例:
    cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="lrICUgCWeCCafgoGO7tGohrP6kOtE3BaT6fc" --variable IOS_KEY="lrICUgCWeCCafgoGO7tGohrP6kOtE3BaT6fc"
    

    注意:IOS_KEY这一项你就算没有也要填上,不然无法安装。

    • 使用方法
    baidumap_location.getCurrentPosition(function (result) {
        console.log(JSON.stringify(result, null, 4));
    }, function (error) {
     
    });
    

    移除插件:cordova plugin rm cordova-plugin-baidumaplocation

    * 方案二高德地图定位

    高德定位介绍地址

    高德地图获取密钥的过程基本和百度的一样,这里就省略了。

    安装

    cordova plugin add https://github.com/DaiHuaXieHuaKai/GaoDeLocation.git --variable API_KEY="12594614f5cdf06ceffd3c5493d25e5b"
    

    使用方法:

    // 进行定位
    GaoDe.getCurrentPosition(successCallback, failedCallback);
    
  • 相关阅读:
    Redis 系列之CentOS下Redis的安装
    Redis 系列之CentOS下Redis的安装
    Redis 系列之CentOS下Redis的安装
    Redis 系列之CentOS下Redis的安装
    55种网页常用小技巧
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/akun-2017/p/9766617.html
Copyright © 2020-2023  润新知