cordova + vue 完成一个APP记录 (2)

650 阅读2分钟

APP的准备工作已经搞定了,接下来就要配置一些依赖微信的第三方插件,搞 1.微信登录 相应的插件安装 cordova plugin add cordova-plugin-wechat --variable wechatappid=开放平台申请移动应用的APPID 注意,注意 一定要在微信开放平台上先申请 移动应用中你所依赖的一些功能

    (1)首先你需要填写
        应用签名:
        包名:
    (2)获取签名
        在android项目根目录下运行命令cordova build --release android,这是会生成一个apk,不同的版本生成的apk位置不一样,这就需要你自己找了
    (3)keytool -genkeypair -alias hhh.keystore -keyalg RSA -validity 4000 -keystore hhh.keystore执行命令会在项目的根目录下生成一个hhh.keystore的签名文件(注意要记住密码,后面会用到)
    (4)把刚运行cordova build --release android生成的apk和hhh.keystore 放在同一目录 打开cmd jarsigner -verbose -keystore hhh.keystore -signedjar 你要的名字.apk 打包的.apk hhh.keystore 运行回车输入密码,这就完成了apk的打包签名
    
    (4)vue 使用 微信登录
        let that = this
        Wechat.isInstalled((installed) => {
          let scope = 'snsapi_userinfo'
          let state = '_' + (+new Date())
          Wechat.auth(scope, state, (response) => {
            Indicator.open({
              text: '登录中...',
              spinnerType: 'fading-circle'
            })
            let url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=你的APPID&secret=你的APPsecret&code=' + response.code + '&grant_type=authorization_code'
            that.request({
              url: url,
              success: function (res) {
                let resultjson = JSON.parse(res)
                console.log(resultjson)
                <!--这里有相应的你所需的东西-->
              }
            })
          })
        }, function (reason) {
          alert('Failed: ' + reason)
        })
        如果想要直接拿到 unionid  nickname  weixinOpenid
        需要再次调用 'https://api.weixin.qq.com/sns/auth?access_token=' + resultjson.access_token + '&openid=' + openid
        'https://api.weixin.qq.com/sns/userinfo?access_token=' + token + '&openid=' + openid
2.微信分享
    不说直接上代码
    let type = Wechat.Scene.SESSION //分享给朋友
      <!--type = Wechat.Scene.TIMELINE//分享给朋友圈-->
    let title = '亲,' + JSON.parse(this.userInfo).nickname + '喊你来赚钱啦'
    Wechat.share({
      message: {
        title: '分享title',
        description: '分享description',
        thumb: '分享图片',
        media: {
          type: Wechat.Type.LINK,
          webpageUrl: '分享链接'
        }
      },
      scene: type
    }, function () {
      // alert('Success')
    }, function (reason) {
      alert('Failed: ' + reason)
    })

3.解决微信登录,分享的一些闪退的问题
    开始我也遇到过此类问题,查看了一些文档,找到了解决方法
    这是由于cordova版本太高不兼容cordova-plugin-wechat插件所导致的,找到安卓项目中的
    plugins/cordova-plugin-wechat/scripts/android-install.js中的
    var targetDir = path.join(projectRoot, "platforms", "android", "src", packageName.replace(/\./g, path.sep), "wxapi");
    修改成
    var targetDir = path.join(projectRoot, "platforms", "android", "app","src","main","java", packageName.replace(/\./g, path.sep), "wxapi");
    修改后,重新装一下平台
    cordova platform remove android
    cordova platform add android
    搞定。