> 文档中心 > uniapp API 第三方服务

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 官网链接
在这里插入图片描述