uni-app 打包 app

 

调用第三方登录(微信等)

 

页面代码

<view class="auth">
      <!-- #ifdef APP-PLUS -->
      // 条件编译, 代码只有在app内才生效
      <image src="../../static/icos/weixin.png" data-loginType="weixin" @click="auth"></image>
      <image src="../../static/icos/QQ.png" data-loginType="qq" @click="auth"></image>
      <image src="../../static/icos/weibo.png" data-loginType="sinaweibo" @click="auth"></image>
      <!-- #endif -->
      <!-- #ifndef MP-WEIXIN -->
      // 条件编译, 代码只有在微信小程序内才生效
      <image src="../../static/icos/weixin.png"  @click="weixinLogin"></image>
      <!-- #endif -->
</view>

 

事件处理

methods: {
      auth(e) {
        let loginType = e.currentTarget.dataset.logintype
        // 获得定义在image标签上的logintype属性, 属性取值只能使用小写
        // 授权登录
        uni.login({
          provider: loginType,
          // 给provider传入不同的值, 调用不同的应用登陆接口
          success(res) {
            // 登录成功后, 获取用户数据
            uni.getUserInfo({
              provider: loginType,
              success(e) {
                console.log(JSON.stringify(e.userInfo));
                //  返回的数据是json格式
          }
        })
      }
    }

 

provider值

 

官方链接

https://uniapp.dcloud.io/api/plugins/provider?id=getprovider

uni-app 打包 app

根据不同的平台,做不同的处理

 

auth(e) {
        let loginType = e.currentTarget.dataset.logintype
        uni.login({
          provider: loginType,
          success(res) {
            // 登录成功后, 获取用户数据
            uni.getUserInfo({
              provider: loginType,
              success(info) {
                var userInfo = info.userInfo
                var nickName = ""
                var avatarUrl = ""
                var openId = ""
                if (loginType == "weixin") {
                  nickName = userInfo.nickName
                  avatarUrl = userInfo.avatarUrl
                  openId = userInfo.openId
                } else if (loginType == "qq") {
                  nickName = userInfo.nickname
                  avatarUrl = userInfo.figureurl_qq_2
                  // qq返回了多个尺寸的头像, 按需选择
                  openId = userInfo.openId
                }else if (loginType == "sinaweibo") {
                  nickName = userInfo.nickname
                  avatarUrl = userInfo.avatar_large
                  openId = userInfo.id
                }
              }
            })
          }
        })
      }

 

 

链接地址

https://www.jianshu.com/p/c636336b5c7e

 

打包APP

申请微信相关信息

一、登录注册

首先进入微信开放平台,如果有账号的话直接登录,没有的话则根据步骤申请一个账号。

uni-app 打包 app

 

二、创建应用

1、点击移动应用开发进入

 

uni-app 打包 app

 

2、创建应用界面
根据需要填写下面的资料,注意名字半年才可以更改一次,这个名字就是分享后显示的名字(和应用名保持一致)
logo尺寸 28x28一张,108x108一张,这个图片就是分享后显示的logo(和应用logo保持一致)

 

uni-app 打包 app
uni-app 打包 app
 

三、填写平台信息

1、勾选所需要的平台
uni-app 打包 app

2、填写平台信息
需开发人员提供,选填的可不填写,测试的Bundle ID 可与上面的一致,
uni-app 打包 app

 

ios


uni-app 打包 app
Android

提交审核
上面信息填写完毕后就可以提交申请了,一般1-7个工作日审核完成。

 

uni-app 打包 app

四、审核通过

通过后就获得了微信分享的能力,需要把AppID和AppSecret提供给开发者。

注意 AppSecret每次只能看到一次,在看到的时候需要保存下来,如果没有保存,下次就要重置,重置后就是一个新的secret,开发者那里也要相应的更新替换。

uni-app 打包 app

 

安卓证书在线制作工具

uni-app 打包 app

链接地址

http://www.appuploader.net/appuploader/keystore.php

 

登录开发中心

uni-app 打包 app

链接地址

https://dev.dcloud.net.cn/app/index?type=0

 

我的应用

uni-app 打包 app

 

创建应用

输入应用的名称

uni-app 打包 app

 

创建成功

uni-app 打包 app

 

 

 

打包

 

uni-app 打包 app

 

输入信息,即可打包