小程序多端差异调研报告(微信,支付宝,头条,QQ)

已经使用uni-app开发并发布了一个跨端小程序啦,嘻嘻嘻!

?? 须知

  • 这是一份详细的小程序各特性各端真机调研对比报告
  • 测试机:iPhone7 plus IOS 12.4.1
  • 客户端:微信7.0.5,支付宝10.1.72,今日头条7.4.0,抖音8.1.0,QQ8.1.5.461
  • ??? 百度小程序只有商户才能注册,个人开发者无法注册,没有appid功能受限(如百度开发者工具无法使用预览功能导致无法真机测试),所以暂时不测百度小程序

用户信息授权

  • 授权方式:

    • 头条】用户信息授权方式还停留在微信小程序第一版,即直接调用 getUserInfo 弹出授权弹窗,如果用户选择允许,则后续调用不再出弹窗,而是直接走 success 回调。如果用户选择取消,则后续调用也不再出弹窗,而是直接走 fail 回调
    • 微信】【QQ】【支付宝】则采用 button + 回调事件的方式调起授权弹窗,如果用户选择允许,则后续点击不再出弹窗,直接走回调。如果用户选择取消,则后续点击继续弹窗询问授权
  • 授权信息清除方式:
    • 【微信】删除小程序即可清除授权信息
    • 【支付宝】我的-设置-安全设置-账号授权
    • 【今日头条】我的-系统设置-清除缓存。【抖音】未找到清除方法
    • 【QQ】未找到清除方法(据说开放小程序的QQ版本尚未灰度发布)

小程序登录

分享

  • 行为:

    • 【微信】直接调起聊天对话列表进行选择
    • 【QQ】调起分享渠道列表:
      • QQ好友
      • QQ空间
      • 点右上角三个点调起的列表还有微信好友和朋友圈两个项,在微信中打开qq小程序是走中间页
    • 支付宝】调起分享渠道列表:
      • 支付宝朋友圈
      • 支付宝联系人
      • 微信好友|QQ好友(保存支付宝生成的分享图片后打开支付宝扫码)
      • 钉钉好友(中间页自动打开支付宝小程序,中间页不自动关闭)
      • 新浪微博(中间页自动打开支付宝小程序,和钉钉一个中间页)
    • 头条】调起分享渠道列列表:
      • 转发到头条
      • 微信好友|微信朋友圈(生成口令,复制口令后打开今日头条弹出识别弹窗)
      • QQ|QQ空间(打开中间页,点击打开(QQ空间点了没反应),出现另一个中间页,自动打开AppStore,再点打开调起今日头条,最后居然没打开那个小程序??!!!)
    • 【抖音】调起分享渠道列列表:
      • 多闪好友
      • 微信好友|微信朋友圈|QQ好友|QQ空间(生成抖音码图片,打开抖音扫码识别)
  • 【头条】webview的转发暂未支持
    • 【今日头条】能转发,但转发的链接点击后总是提示加载失败!也可能是小程序未发布的原因,扫uni-app官方demo进行 webview转发是能正常打开的
    • 【抖音】不支持转发,右上角胶囊只有一个关闭按钮

跳转到其他小程序

  • 【微信】支持(navigateToMiniProgramAppIdList + navigateToMiniProgram)
  • 【QQ】支持
  • 【头条】支持(navigateToMiniProgramAppIdList + navigateToMiniProgram)
  • 【支付宝】支持(后台配置 + navigateToMiniProgram)

??? ?QQ,支付宝和头条未真机验证,因为须要一个其他小程序的appId

客服会话

支付

  • 【微信】支持(调起微信支付)
  • 【QQ】支持(调起QQ支付)
  • 【支付宝】支持(调起支付宝支付)
  • 【头条】支持(调起支付宝App进行支付)

?? ?QQ,支付宝和头条未真机验证,因为支付接口只有商户才有权限

地理位置

  • 【微信】支持(须在app.json中配置permission字端),用户拒绝授权后再次调用不再出询问弹窗,而是直接走fail回调
  • 【QQ】支持。真机行为同微信。QQ开发者工具上拒绝授权再次调用仍会出询问弹窗
  • 【头条】支持,同微信
  • 【支付宝】支持,用户拒绝授权后再次调用继续出询问弹窗

视频播放

  • 【微信】支持
  • 【QQ】支持
  • 【头条】支持
  • 【支付宝】支持?(uni-app里说支付宝不支持,支付宝文档也没找到video组件,但放在页面里video能正常渲染和播放,难道是昨天刚支持??)

复制文字

  • 行为:

    • 【微信】【QQ】复制成功后有一个默认的复制成功toast且无法控制
    • 【支付宝】【头条】复制成功后没有toast
  • 权限:
    • 【支付宝】my.setClipboard 此功能仅支持企业支付宝账号。实际情况是:在IDE上个人账号是可以复制的,但在真机上调用就会报 ERROR 4: 无权调用该接口 错误
    • 【微信】【QQ】【头条】无限制

打电话

【微信】【QQ】【支付宝】【头条】都支持

收货地址

  • 【微信】支持
  • 【QQ】不支持
  • 【头条】支持(实测【今日头条】支持,【抖音】不支持)
  • 【支付宝】支持。但仅商户才有使用权限。且目前 my.getAddress 接口暂不支持在开发者工具调试和真机调试,仅支持真机预览

相机/图片相关

  • 拍照/相册选图片

    • 【微信】【QQ】支持
    • 【支付宝】支持。IDE上会弹一个相册授权询问弹窗,真机上并没有弹窗
    • 【头条】支持。但会弹出两个询问弹窗(相机权限,相册权限)
  • 拍摄/相册选视频
    • 【微信】【QQ】支持
    • 【支付宝】支持。IDE上会弹一个相册授权询问弹窗,真机上并没有弹窗。须调用 my.chooseVideo(文档未找到),uni.chooseVideo会报错
    • 【头条】支持。但会弹出两个询问弹窗(相机权限,相册权限)
    • ??chooseVideo的maxDuration选项在【微信】和【支付宝】是只限制拍摄时长,在【头条】是同时限制相册选择视频时长和拍摄时长
  • 图片预览

    【微信】【QQ】【支付宝】【头条】都支持

  • 保存图片到相册
    • 【微信】【QQ】【头条】支持,弹窗仅询问一次
    • 【支付宝】tt.saveImageToPhotosAlbum 在IDE上报错 tt.saveImageToPhotosAlbum is not a function,在真机上报错 无权调用该接口,文档未提及,猜测是仅商户可用,且不支持在开发者工具调试和真机调试,仅支持真机预览

接口返回值差异

// 支付宝
{
  'nickName': 'test',
  'gender': 'm',
  'city': '北京市',
  'province': '北京'
  'countryCode': 'CN',
  'avatar': 'https:\/\/tfs.alipayobjects.com\/images\/partner\/T1_38eXnRiXXXXXXXX',
  'code': '10000',
  'msg': 'Success',
}
// 微信
{
  'nickName': 'test',
  'gender': 1,
  'city': 'Xinxiang',
  'province': 'Henan',
  'country': 'China',
  'avatarUrl': 'https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJCzUl7llykqrMLicpULvVfkbbL2bVDua4tI8ibjxq5E9ib1oPW3F4QazLIUdS2GsFMAGnrWSYjN05Ew/132'
  'language': 'zh_CN',
}
// QQ
{
  'nickName': 'test',
  'gender': 1,
  'city': '新乡',
  'province': '河南'
  'country': '中国',
  'avatarUrl': 'https://thirdqq.qlogo.cn/qqapp/1108100302/D64611B2AE700324589177922EEBA5F4/100',
  'language': 'zh_CN',
}
// 头条系(今日头条,抖音,皮皮虾,西瓜视频分别取各自用户信息)
{
  'nickName': 'test',
  'gender': 1,
  'city': '新乡市',
  'province': '河南省'
  'country': '中国',
  'avatarUrl': 'http://wx.qlogo.cn/mmhead/Q3auHgzwzM5uibSytRCXFs0Y3xSpdy12thibjWIoMrBIsf7FiaPp2ibnFg/0',
  'language': '',
}
// 微信 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html
[
  'scope.userInfo', // 用户信息
  'scope.userLocation', // 地理位置
  'scope.address', // 通讯地址
  'scope.record', // 录音功能
  'scope.camera', // 摄像头
  'scope.writePhotosAlbum', // 保存到相册

  'scope.userLocationBackground', // 后台定位
  'scope.invoiceTitle', // 发票抬头
  'scope.invoice', // 获取发票
  'scope.werun', // 微信运动步数
]
// 头条 https://developer.toutiao.com/dev/miniapp/uQjMy4CNyIjL0IjM
[
  'scope.userInfo', // 用户信息
  'scope.userLocation', // 地理位置
  'scope.address', // 通讯地址
  'scope.record', // 录音功能
  'scope.camera', // 摄像头
  'scope.album',  // *保存到相册*
]
// 支付宝 https://docs.alipay.com/mini/api/xmk3ml#-1
[
  'userInfo', // 用户信息
  'location', // 地理位置
  'audioRecord', // 录音功能
  'camera', // 摄像头
  'album', // 保存到相册
]
// QQ https://q.qq.com/wiki/develop/game/frame/open-ability/authorize.html
[
  'scope.userInfo', // 用户信息
  'scope.userLocation', // 地理位置
  'scope.qqrun', // QQ运动步数
  'scope.writePhotosAlbum', // 保存到相册
  'scope.appMsgSubscribed', // 订阅消息
]

主要入口

  • 【微信】

    • 首屏对话列表下拉
    • 扫一扫
    • 发现->小程序
    • 搜索
  • 【支付宝】
    • 扫一扫
    • 搜索
    • 首页我的小程序
  • 【今日头条】
    • 我的->扫一扫
    • 搜索
  • 【抖音】
    • 搜索->扫一扫
  • 【QQ】
    • 扫一扫

?? 头条小程序陷阱

  • 目前仅在头条Android版本7.2.9及以上版本支持真机调试功能。iOS暂时不支持真机调试
  • 抖音App的小程序上没有打开调试器选项,右上角胶囊只有一个关闭按钮

?? 支付宝小程序陷阱

?? uni-app 陷阱

  • uni.getSetting,文档上说【支付宝】支持,调用却报错 支付宝小程序,暂不支持getSetting,而直接调支付宝的api my.getSetting 确是支持的
  • uni.chooseVideo,文档上说【支付宝】支持,调用却报错 支付宝小程序,暂不支持chooseVideo,而直接调支付宝的api my.chooseVideo(文档未找到) 确是支持的
  • uni.chooseAddress,文档上说【支付宝】不支持,实际上是支持的,只是需要调用 my.getAddress,且仅商户才能使用
  • uni.getImageInfo,文档上说【头条】支持,调用却报错 头条小程序,暂不支持getImageInfo,而直接调头条的api tt.getImageInfo 确是支持的

?? TODO

  • 模版消息
  • 第三方插件

uni-app 跨端小程序风险点

  • 后端接口。不同端的后端接口不一样,需要后端评估一下。举例:模版消息(微信|支付宝|头条);设计用户系统时需注意微信和QQ都有各自的openID和unionID,支付宝只有uid,头条只有openID;接入微信,QQ,支付宝支付时各种传参不一样
  • 分享转发。支付宝,头条小程序分享至微信和QQ的主要方式是生成口令或者生成小程序码图片或者走中间页,导致传播路径较长
  • 某些端重要功能缺失。举例:【头条】不支持客服会话。【抖音】不支持webview转发。【QQ】不支持收货地址
  • 某些端api缺失,可能导致某些功能无法实现
  • 第三方插件支持度

原文地址:https://www.cnblogs.com/iovec/p/11782902.html

时间: 2024-11-18 18:57:43

小程序多端差异调研报告(微信,支付宝,头条,QQ)的相关文章

纯正商业级应用-Node.js Koa2开发微信小程序服务端

第1章 前言.导学与node.js如何理解Node.js?前端到底要不要学习Node.js?本课程能让你学到什么? 第2章 Koa2的那点事儿与异步编程模型Koa非常的精简,基本上,没有经过二次开发的Koa根本“不能”用.本章我们讲解Koa的重要特性,理解什么是洋葱模型?以及在KOA中如何进行异步编程?很多同学都了解以上知识点,但听完本章,你会有一些不一样的理解,比如:为什么要有洋葱模型?没有会怎样?Koa中间件一定是异步的吗? ... 第3章 路由系统的改造Koa-router需要进行一些改造

小程序开发运营必看:微信小程序平台运营规范

一.原则及相关说明 ? 微信最核心的价值,就是连接——提供一对一.一对多和多对多的连接方式,从而实现人与人.人与智能终端.人与社交化娱乐.人与硬件设备的连接,同时连接服务.资讯.商业. ? 微信团队一直致力于将微信打造成一个强大的.全方位的服务工具.在此基础上,我们推出了微信小程序这个产品,提供给微信小程序的开发者在微信内搭建和实现特定服务.功能的平台.通过全面开放的能力,我们将更多连接的可能给予企业和服务提供者,并为微信小程序提供基础的接入能力.运营环境和规则体系,进而帮助更多的企业和服务提供

【小程序入门集锦】19,微信小程序个人帐号申请

个人账号与企业帐号相比,缺少支付等功能,与个人订阅号类似. 小程序开放个人开发者申请注册,个人用户可访问微信公众平台,扫码验证个人身份后即可完成小程序帐号申请并进行代码开发. 下面我们就来说说个人小程序的申请流程 1.首先进入微信公众平台 https://mp.weixin.qq.com/ ,第一次使用点击立即注册(注意,以前有公众号的,需要重新注册小程序的这个类别,邮箱也是未注册过的才可以) 2.进入选择注册的账号类型 小程序可以看作是一种特殊的公众号,在微信开放平台的第三方平台那一栏拿它与公

微信小程序之购物数量加减 —— 微信小程序实战商城系列(3)

我们在购买宝贝的时候,购物的数量,经常是我们需要使用的,如下所示: 在宝贝详情页里: 在购物车里: 现在就为大家介绍这个小组件,在小程序中,该如何去写 下图为本项目的图: wxml: <!-- 主容器 --> <view class="stepper"> <!-- 减号 --> <text class="{{minusStatus}}" bindtap="bindMinus">-</text&

小程序服务端集成微信支付

摘要: 换取openid->统一下单->发起支付,三步走,其中二次签名比较坑人. 该demo源码已托管到码云:http://git.oschina.net/dotton/lendoo-wx,欢迎下载. 理论上集成微信支付的全部工作可以在小程序端完成,因为小程序js有访问网络的能力,但是为了安全,不暴露敏感key,而且可以使用官方提供的现成php demo更省力,于是在服务端完成签名与发起请求,小程序端只做一个wx.requestPayment(OBJECT)接口的对接. 整体集成过程与JSAP

小程序——分享二维码报告

小程序分享报告(图片+二维码): 小程序页面生成图片:请用canvas,页面简单用canvas,页面复杂也用canvas. 踩过的坑: 思路:html  ->  html2canvas  ->  canvas||image/png; 最后涉及到小程序与H5页面项目连接问题(web-view &分享页面),还是用canvas老老实实画的 Bug1:小程序,不支持js获取Dom操作, 解决1:单独写https的一个H5页面来操作Dom.     <web-view  src='htt

微信小程序开发《三》:微信小程序请求不能使用session的原因及解决办法

本人在前面的微信小程序开发<二>中提到要想在服务端保持状态需要在客户端第一次请求服务器的时候给客户端返回一个sessionid,由客户端在本地保存,下次请求的时候在header里面带上这个sessionid,写到cookie字段里.但是最近发现请求时哪怕每次在header里带上sessionid还是不能拿到同一个session,百度后终于发现坑了(也不知道微信为啥要这么做),原来微信对wx.request这个API做了修改,小程序发起的请求并不是直接请求我们的后台服务器,而是先通过微信的服务器

HotApp小程序统计,第一个专业的微信第三方小程序统计工具

1.什么是HotApp小程序统计 HotApp小程序统计是第一个微信第三方小程序统计工具,就像做android 和 ios开发的人知道友盟统计一样,小程序也需要有个统计工具. 通过这个工具,可以知道小程序的每日新增,每日启动次数,总用户,每天的活跃用户,很多人可能就会说,微信已经提供了,那还需要这个工具做什么? 因为微信只能看到前一天的新增用户,启动次数等数据,而当日的数据,微信的统计还不能提供. HotApp小程序统计 网址:www.weixin.hotapp.cn 2.HotApp小程序到底

微量小程序联盟,如何免费推广微信小程序?

自小程序入世以来,大批量的创业者便使劲浑身力气,使出各种想法,生产除了大批量的小称一下,有的小程序出世以来一直很火,而大多数小程序自始至终都是无人无津,所以便出现了一个新的问题,小程序我能很快的做出来,可这流量怎么解决,怎么运营?怎么推广,上哪里找初始的种子用户呢,这个问题难道了一大批创业者. 那有没有一种好的方法,能帮助广大创业者免费解决小程序的流量问题,您还别说,还真有,最近逛知乎的时候,看见了一个平台叫微量小程序联盟,大佬又指明了一条道路,可以换量啊.于是我又接触到了一款换量的SDK,点击