位置: IT常识 - 正文

UNIAPP手机号一键登录(uniapp获取手机通讯录)

编辑:rootadmin
UNIAPP手机号一键登录

推荐整理分享UNIAPP手机号一键登录(uniapp获取手机通讯录),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp手机号一键登录 小程序,uniapp手机号一键登录 小程序,uniapp手机号一键登录隐私政策,uniapp手机号一键登录 小程序,uniapp手机号一键登录弹窗关闭事件,uniapp手机号一键登录隐私政策,uniapp手机号一键登录隐私政策,uniapp手机号一键登录 小程序,内容如对您有帮助,希望把文章链接给更多的朋友!

使用uniapp实现移动端手机号一键登录功能。

uni一键登录是DCloud联合个推公司推出的,整合了三大运营商网关认证能力的服务。

通过运营商的底层SDK,实现App端无需短信验证码直接获取手机号,也就是很多主流App都提供的一键登录功能

首先需要登录DCloud开发者中心,申请开通一键登录服务。

UNIAPP手机号一键登录(uniapp获取手机通讯录)

 开通后会得到ApiKey和Apisecret,和计费有关,扣费凭证,请勿泄露此信息!

点击应用管理——我的应用——创建应用,填写信息,appid在manifest.json的基础配置中,Android 应用签名可以使用云打包的公共证书签名,也可以生成自有证书。

添加应用后点击一键登录-基础配置-添加应用(不创建应用应用签名无法填入)等待审核……

项目文件夹右键创建UNICloud云开发环境,新建云函数,getPhoneNumber文件夹中index.js代码示例:

'use strict';exports.main = async (event, context) => { // event里包含着客户端提交的参数 const res = await uniCloud.getPhoneNumber({ appid: '_UNI_ABCDEFG', // 替换成自己开通一键登录的应用的DCloud appid provider: 'univerify', apiKey: 'xxx', // 在开发者中心开通服务并获取apiKey apiSecret: 'xxx', // 在开发者中心开通服务并获取apiSecret access_token: event.access_token, openid: event.openid }) console.log(res); // res里包含手机号 // 执行用户信息入库等操作,正常情况下不要把完整手机号返回给前端 // 如果数据库在uniCloud上,可以直接入库 // 如果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=httpclient return { code: 0, message: '获取手机号成功' }}

在package.json写入:

{  "name": "getPhoneNumber",  "dependencies": {},  "extensions": {    "uni-cloud-jql": {},    "uni-cloud-verify": {}  }}

右键uniCloud关联云服务空间或项目,没有的话点击新建,可以选免费版,我选择的是阿里云

 右键getPhoneNumber上传部署

// 手机号一键登录getIphone() {    uni.preLogin({//预登陆检查是否符合一键登录的环境,可不用        provider: 'univerify',        success: () => {            uni.login({                provider: 'univerify',                univerifyStyle: {                    "fullScreen": true, // 是否全屏显示,true表示全屏模式,false表示非全屏模式,默认值为false。                    "backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff                      "phoneNum": {                        "color": "#000000", // 手机号文字颜色 默认值:#000000                       },                    "slogan": {                        "color": "#8a8b90", //  slogan 字体颜色 默认值:#8a8b90                      },                    "icon": {                        "path": "static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo                       },                    "authButton": {                        "normalColor": "#3479f5", // 授权按钮正常状态背景颜色 默认值:#3479f5                          "highlightColor": "#2861c5", // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)                          "disabledColor": "#73aaf5", // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)                          "textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff                          "title": "本机号码一键登录" // 授权按钮文案 默认值:“本机号码一键登录”                      },                    "otherLoginButton": {                        "visible": "false", // 是否显示其他登录按钮,默认值:true                      },                },                success: (res) => {                    console.log(res)                    uniCloud.callFunction({                        name: 'getPhoneNumber', // 你的云函数名称                        data: {                            access_token: res.authResult                            .access_token, // 客户端一键登录接口返回的access_token                            openid: res.authResult.openid // 客户端一键登录接口返回的openid                        }                    }).then(dataRes => {                        console.log('云函数返回的参数', dataRes)                        uni.showToast({                            title: `当前手机号为:${dataRes.result.phoneNumber}`,                            icon: "none"                        })                    }).catch(err => {                        console.log('云函数报错', err)                    })                    uni.showToast({                        title: res.authResult,                        icon: "none"                    })                    uni.closeAuthView() //关闭一键登录弹出窗口                },                fail(res) { // 登录失败                    uni.closeAuthView() //关闭一键登录弹出窗口                    console.log('失败')                },            })        },        fail(res) {            console.log('一键登录失败',res)            if (res.errMsg != 'login:ok') {                uni.showToast({                    title: res.metadata.msg,                    icon: "none"                })            }            //如果手机没有插入有效的sim卡,或者手机蜂窝数据网络关闭,            //都有可能造成预登录校验失败。        }    })},

成功后页面:

本文链接地址:https://www.jiuchutong.com/zhishi/298518.html 转载请保留说明!

上一篇:loss.item()用法和注意事项详解(loss for)

下一篇:一个简单HTML5期末考核大作业,学生个人html静态网页制作代码(html5简单吗)

  • 小规模纳税人增值税可以抵扣吗
  • 换了公司后个税还要申请申报吗
  • 资本公积转增资本会引起什么变化
  • 出口企业何时选择免(征)税申报方式?
  • 消费型增值税的特点的是( )
  • 网上商城的主要功能以及购物流程
  • 应付利息增加会计分录
  • 国债收益率如何定价
  • 个税申报填写的工资是应发还是实发
  • 金税盘纳税申报流程
  • 减免房产税土地使用税 账务处理
  • 进口增值税的计税价格为
  • 融资租赁出租方会计处理
  • 咨询费发票怎么入账
  • 个人去税务局开劳务票 税点是多少
  • 跨年度取得增值税发票能否抵扣?
  • 以前年度损益调整属于哪类科目
  • 基金公司管理费收入怎么入账
  • 个体工商户税收优惠政策2023年最新
  • 开专票和普票的税点
  • 酒店小规模纳税人税率
  • 医疗机构免征增值税如何申报
  • 小规模纳税人销售自己使用过的物品
  • 鸿蒙3.0系统哪些手机可以升级
  • 企业废业怎样做会计分录
  • 长期待摊费用2021
  • 发出商品是在产品吗
  • 如何使专业人员的工作卓有成效读后感悟
  • php注释的主要作用是什么?
  • PHP:finfo_open()的用法_fileinfo函数
  • ros 2
  • 超级本轻薄本
  • php处理并发有哪些技术
  • 调入的无形资产记入哪里
  • 前端 组件化
  • object.assign(this.$data, this.$options.data())
  • 年末应交税费怎么算
  • 为什么增值税发票不能折叠?
  • python {:s}
  • dedecms建站
  • sql随机数字
  • 进口关税完税价格的计算公式
  • 应付职工薪酬账户的明细账户有
  • 企业筹办期怎么做账最合理
  • 固定资产净残值可以为0吗
  • 差额开票和全额开票
  • 固定资产错记到费用了怎么办
  • 应交税金及附加怎么计算
  • 企业委托企业
  • 营改增后建筑业怎么开票
  • 多收钱退回去咋说
  • 发票右上角打印缺数字
  • 劳务费可以白条入账吗
  • mysql必知必会和sql基础教程
  • mysql 行转列 列转行
  • win10简单版
  • windows8出现蓝屏
  • m0b0player播放器
  • win 7组策略
  • linux命令速记
  • 如何将win7系统装进移动硬盘
  • linux系统文件修复命令
  • windows10 禁用u盘
  • cocos3.0
  • windows下用CMD调用COM口
  • tf-idf例题
  • unity-3d
  • rgb与yuv哪个好
  • unity 移动应用开发
  • 解决口苦的最佳方法
  • JavaScript事件类型中焦点、鼠标和滚轮事件详解
  • js == ===区别
  • 噩梦 1-4
  • TFC360冯燃:手游市场细分领域新秀崛起
  • 电子税务局申报表在哪里查询
  • 江苏 税务局
  • 没盖发票专用章可以补盖吗
  • 所得税调增调减搞不清
  • 广东税务查询系统
  • 护士的专业素质要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设