uniapp API 第三方服务

  • 获取服务供应商
  • 登录
  • 分享
  • 支付
  • 推送
  • 语音

获取服务供应商

uni.getProvider(OBJECT)
App平台,可用的服务商,是打包环境中配置的服务商,与手机端是否安装了该服务商的App没有关系。
云打包在manifest中配置相关模块和SDK信息,离线打包在原生工程中配置。某个服务商配置被打包进去,运行时就能得到相应的服务供应商。

uni.getProvider({service: 'oauth', //service   String  服务类型  oauth授权登录 share分享 payment支付 push推送success: function (res) {  //成功的回调console.log(res.provider)if (~res.provider.indexOf('weixin')) {uni.login({provider: 'weixin', //provider  Array   得到的服务供应商success: function (loginRes) {console.log(JSON.stringify(loginRes));}});}}
});

登录

uni.login(OBJECT)

uni.login({provider: 'weixin', //provider  String  登录服务提供商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', //provider  String  登录服务提供商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', //provider    String  登录服务提供商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  朋友圈WXSceneTimeLinetype: 0, // 图文0 文字1 图片2href: "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 官网链接

uniapp API 第三方服务相关推荐

  1. Uni-app API

    Uni-app的各种api,各种功能还是很全面的,而且基于vue用法,本身也带有自己的一套UI系统,代码也能兼容app和小程序,还是挺方便的. 基础 #日志打印 日志打印       向控制台打印日志 ...

  2. places365_Google Places API网络服务示例

    places365 Google Places API can be used to find nearby places. In this tutorial, we'll be developing ...

  3. uni-app 打开第三方程序

    我们在开发 App 应用中,经常会遇到打开第三方程序的场景,在 uni-app 中我们应该如何做?相信不少刚接触的同学都会有此疑问.其实在 uni-app 中实现这个功能是非常简单的. 我们使用 5+ ...

  4. WebService(1) 调用第三方服务

    网上有很多的免费WebService 服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web项目中显示,下面就以查询国内手机号码归属地为例进行说明 进入 ht ...

  5. 【Gulimall+】第三方服务:对象存储OSS、短信验证、社交登录、支付宝支付

    文章目录 对象存储OSS 基本配置 java实现 短信认证 前端验证码倒计时 整合短信验证码 密码存储 社交登录:微博 基本流程 java实现 支付宝支付 基本配置 java实现 对象存储OSS 一谈 ...

  6. 微信第三方服务平台java授权获取token(一)

    公众平台第三方平台是为了让公众号或小程序运营者,在面向垂直行业需求时,可以一键授权给第三方平台(并且可以同时授权给多家第三方),通过第三方平台来完成业务,开放给所有通过开发者资质认证后的开发者使用. ...

  7. 科普:Java 后端开发常用的 10 种第三方服务

    严格意义上说,所有软件的第三方服务都可以自己开发,不过从零到一是需要时间和金钱成本的.就像我们研发芯片,投入了巨大的成本,但仍然没有取得理想的成绩,有些事情并不是一朝一夕,投机取巧就能完成的. Jav ...

  8. Java 后端开发常用的第三方服务 TOP10

    严格意义上说,所有软件的第三方服务都可以自己开发,不过从零到一是需要时间和金钱成本的.就像我们研发芯片,投入了巨大的成本,但仍然没有取得理想的成绩,有些事情并不是一朝一夕,投机取巧就能完成的. Jav ...

  9. 微信第三方服务平台开发(一)

    工作中遇到开发微信第三方服务的需求,学习的同时记录一下开发的过程,给大家提供一个参考,希望能有些帮助,让大家少走些弯路. 首先说下开发流程,微信公众平台提供了大量的第三方接口供开发者调用,可以丰富微信 ...

最新文章

  1. c: realloc()函数解析
  2. C语言中printf是不是关键字,C语言中printf是什么意思
  3. js面向对象之创建对象1
  4. 90后美少女如何过五关斩六将入职支付宝技术男团?
  5. eureka server配置_程序员笔记|详解Eureka 缓存机制
  6. 如何查看单元测试的结果 以及异常处理
  7. 深度学习自动调参工具,NNI使用
  8. windows下git安装配置
  9. 2021 CCF网络推荐会议时间列表
  10. Markdown常用字体 大小 颜色和背景设置
  11. 少年宫计算机活动总结改进措施,少年宫乒乓球的活动总结
  12. 手机网站支付唤起支付宝app
  13. matlab设置时间步长,时间步长的设置问题
  14. C语言如何正确初始化数据,C语言变量的初始化
  15. macOS Mojave(软件篇):微信 for Mac 防撤回插件(WeChatTweak-macOS)
  16. 一种实用的笑脸检测方法
  17. 霍尔FOC转子位置估计算法
  18. 微信播放在服务器视频无法播放音乐,解决ios微信浏览器中audio和video音乐视频无法自动播放等问题...
  19. 【2020年APP-Flutter混合开发之路】01 - Flutter的初步思考和开发部署
  20. java怎么读_java怎么读

热门文章

  1. lvgl显示中文和自定义图标
  2. 计算机和电脑键盘进水怎么办,电脑键盘进水怎么办 电脑键盘进水解决方法
  3. python绝对方向角度值_哪个选项是turtle绘图中角度坐标系的绝对0度方向?_学小易找答案...
  4. L - Lifeguards 思维
  5. 云超融合数据中心 CloudFabric
  6. MSF-17010(永恒之蓝)复现
  7. 如何储存图片方法jpg格式png格式#ps教程#ps抠图
  8. Linux配置桥接网络模式
  9. 误把电脑desktop文件删了怎么处理
  10. mysql进行创建序列化