uniapp API 第三方服务
uniapp API 第三方服务
-
-
-
- 获取服务供应商
- 登录
- 分享
- 支付
- 推送
- 语音
-
-
获取服务供应商
uni.getProvider(OBJECT)
App平台,可用的服务商,是打包环境中配置的服务商,与手机端是否安装了该服务商的App没有关系。
云打包在manifest中配置相关模块和SDK信息,离线打包在原生工程中配置。某个服务商配置被打包进去,运行时就能得到相应的服务供应商。
uni.getProvider({ service: 'oauth', //serviceString服务类型 oauth授权登录 share分享 payment支付 push推送 success: function (res) { //成功的回调 console.log(res.provider) if (~res.provider.indexOf('weixin')) { uni.login({ provider: 'weixin', //providerArray得到的服务供应商 success: function (loginRes) { console.log(JSON.stringify(loginRes)); } }); } }});
登录
uni.login(OBJECT)
uni.login({ provider: 'weixin', //providerString登录服务提供商 success: function (loginRes) { //成功回调 console.log(loginRes.authResult); //authResult登录服务商提供的登录信息,服务商不同返回的结果不完全相同 }});
uni.checkSession
检查登录状态是否过期
uni.getUserInfo(OBJECT)
获取用户信息。
苹果登录
loginApple() {console.log(111)var that = thisvar app = getApp({allowDefault: true})setTimeout(function() {uni.login({ provider: 'apple', //providerString登录服务提供商success: function(res) {console.log(res)var loginCode = res.codethat.loginCode = loginCodeuni.getUserInfo({ //获取用户信息provider: 'apple',lang: "zh_CN",success: function(userRes) {// #ifdef APP-PLUSconsole.log("苹果登录")let userInfo = JSON.stringify(userRes.userInfo)console.log(userInfo)util.ajax({url: '/system/applelogin.do',data: {"userInfo":userInfo,},//服务端的回掉success: function(result) {console.log(result)let data = result.dataif(data.resultCode=="true"){uni.setStorage({key: 'useruuid',data: result.data.user.useruuid})app.globalData.provider = result.data.providerapp.globalData.user = result.data.userconsole.log("用户已登录")uni.navigateBack({delta: 1});}else if(data.resultCode=="nouser"){//没有绑定账号的appleId,需要注册userInfo = JSON.parse(userInfo)console.log("nouser")userInfo.plat = "apple"uni.setStorageSync("userInfo",userInfo)uni.navigateTo({url:"/pages/login/appregister"})}}})// #endif},//接口调用结束的回调函数(调用成功、失败都会执行)complete: function(res) {// console.log(res)}})},//接口调用失败的回调函数fail: function(res) {}})},100)},
微信登录
loginWeixin() {console.log("垃圾安卓")var that = thisvar app = getApp({allowDefault: true})setTimeout(function() {uni.login({provider: 'weixin', //providerString登录服务提供商success: function(res) {var loginCode = res.codethat.loginCode = loginCodeuni.getUserInfo({ //获取用户信息provider: 'weixin',lang: "zh_CN",success: function(userRes) {// #ifdef MP-WEIXIN//发起网络请求util.ajax({url: '/system/login.do',data: {code: loginCode,encryptedData: userRes.encryptedData,iv: userRes.iv,wxheadpic: userRes.userInfo.avatarUrl},//服务端的回掉success: function(result) {uni.setStorage({key: 'useruuid',data: result.data.user.useruuid})app.globalData.provider = result.data.providerapp.globalData.user = result.data.userconsole.log("用户已登录")uni.navigateBack({delta: 1});}})// #endif// #ifdef APP-PLUSconsole.log("微信登录")let userInfo = JSON.stringify(userRes.userInfo)console.log(userInfo)util.ajax({url: '/system/applogin.do',data: {"userInfo":userInfo,},//服务端的回掉success: function(result) {console.log(result)let data = result.dataif(data.resultCode=="true"){uni.setStorage({key: 'useruuid',data: result.data.user.useruuid})app.globalData.provider = result.data.providerapp.globalData.user = result.data.userconsole.log("用户已登录")uni.navigateBack({delta: 1});}else if(data.resultCode=="nouser"){userInfo = JSON.parse(userInfo) //没有绑定账号的微信,需要注册userInfo.plat = "weixin"uni.setStorageSync("userInfo",userInfo)uni.navigateTo({url:"/pages/login/appregister"})}},complete:function(e){console.log(e)}})// #endif},//接口调用结束的回调函数(调用成功、失败都会执行)complete: function(res) {// console.log(res)}})},//接口调用失败的回调函数fail: function(res) {}})},100)},
分享
uni.share(OBJECT) 官网链接
uni-app的App引擎已经封装了微信、QQ、微博的分享SDK,开发者可以直接调用相关功能。
可以分享到微信、QQ、微博,每个社交平台被称为分享服务提供商,即provider。
可以分享文字、图片、图文横条、音乐、视频等多种形式。同时注意,分享为小程序也使用本API。即在App里可以通过本API把一个内容以小程序(通常为内容页)方式直接分享给微信好友。
注意:
仅支持分享微信小程序到微信聊天界面,想进入朋友圈需改为分享图片方式,在图片中包含小程序码。一般通过canvas绘制图片,插件市场有很多生成图片的插件。
小程序分享:
// 小程序分享onShareAppMessage() { return { title: 'test', path: 'pages/index/index' }}
只有定义了此事件处理函数,小程序右上角菜单才会显示“转发”按钮。
App分享:
首先要在 manfest.json中的 App模块权限配置 中,勾选上分享
然后在 AppSDK配置 中,设置分享模块,需要填写对应的信息。
<!-- #ifdef APP-PLUS --><button type="primary" @click="share">分享</button><!-- #endif -->
// 分享好友share() { // 分享图文到微信聊天界面 uni.share({ provider: "weixin", // 服务商 scene: "WXSceneSession", // 场景 微信好友WXSceneSession 朋友圈WXSceneTimeLine type: 0, // 图文0 文字1 图片2 href: "http://uniapp.dcloud.io/", // 分享h5地址 title: "uni-app分享", summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!", // 描述 imageUrl: "https://img-cdn-qiniu.dcloud.net.cn/uniapp/images/uni@2x.png", success: function (res) { console.log("success:" + JSON.stringify(res)); }, fail: function (err) { console.log("fail:" + JSON.stringify(err)); } });}
分享图文:href、imageUrl 为必选参数,title/summary 二选一,最好将这四个参数都选上。
添加按钮:
支付
uni.requestPayment(OBJECT) 官网链接
推送
uni push 官网链接
语音
voice 官网链接