开启左侧

支付宝小程序scheme衔接引见

[复制链接]
在线会员 几欲逢花 发表于 2023-2-10 11:08:23 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
女伶 href="https://www.taojin168.com/cloud/" target="_blank">小法式scheme链交介绍

内部 APP/浏览器 唤起小法式,需要颠末 scheme 挪用,正在 scheme 中能够传参战树立跳转的尾页参数。

拼交方法

URL格局
alipays://platformapi/startapp?appId=[appId]&page=[pagePath]&query= [params]

参数描绘示例appId要跳转的目标小法式appId20170713077xxxxxpagePath要跳转到目标小法式的具体 page 页里,该值即是 app.json里面 的设置值;假设没有戴 page 字段,默认跳转到小法式尾页。pages/index/indexquery暗示从内部 APP 照顾的参数透传到目标小法式;假设没有需要照顾参数给小法式,能够没有戴该参数。
query:启用参数,实质根据格局为参数名=参数值&参数名=参数值
注:query照顾的启用参数必需截至UrlEncode不然只可获得第一个参数!)xx%3dxx

假设念要正在scheme中加之域名,挪用小法式,则需要把scheme看成参数截至uri编码。比方:
window.location.href=`https://ds.alipay.com/?scheme=alipays://platformapi/startapp?appId=20170713077xxxxx&page=pages/block/block&query=hash=${query.rowkey}${type}`

变换为:(js的变换办法)
window.location.href=`https://ds.alipay.com/?scheme=` + encodeURIComponent("alipays://platformapi/startapp?appId=20170713077xxxxx&page=pages/block/block&query=hash=") + `${query.rowkey}${type}`

scheme 挪用小法式以后,使用战页里的处置逻辑以下。正在叙述以前,需先理解下先后台的界说。

前台/背景运行
一、前台运行: 当用户初度翻开小法式时候,小法式会处于前台运行形状。
二、背景运行: 用户面打左上角封闭按钮封闭小法式,大概按下装备 Home 键分隔付出宝 App 时,小法式其实不会间接烧毁,而是加入背景运行形状。只需当小法式加入背景必然时间,大概体系资本占用太高,才会被真实的烧毁。
三、从背景运行切换为前台运行: 当已被体系烧毁的小法式再度被翻开大概激活时,会从背景运行切换为前台运行。

使用逻辑
屡屡颠末 scheme 挪用,前端表示是从头触收 onLaunch 战 onShow, 城市传参给app.js 的 onLaunch 战 onShow,根底页里会从头触收 onLoad 战 onShow办法 。
正在保活期间(5分钟),好比锁屏以后,会从头触收onShow办法,可是却无法获得参数,也即是传参 scheme 只会正在挪用的时候触收一次,再次启用不过触收 onShow 没有会传参。只可前端正在 onShow 里干响应的营业逻辑。

页里的逻辑
当小法式用 scheme 从背景唤起的时候,实在相称于从头被翻开了onLoad,另有 onShow 城市被触收。
正在保活期间(5分钟)被从头唤起的时候,便只会触收 onShow 。

小法式颠末scheme跳转怎样获得启用参数
正在小法式app.js onLaunch /onShow中止 获得启用参数。
假设热启用,则会正在onLaunch(options) 中得到参数;假设 为冷启用,则会正在onShow(options)中得到参数。倡议热启用中获得没有了的时候,再测验考试正在onShow中获得,若仍是获得没有了,则可判定为不拿到该参数。
注:最少需要上架一次小法式,才气使用该跳转方法尝试。
获得示例:
onLaunch(options) {    my.alert({      content:JSON.stringify(options.query.key) })    console.log(JSON.stringify(options)) }, onShow(options) {    my.alert({      content:JSON.stringify(options.query.key) })    console.log(JSON.stringify(options)) },

小法式scheme链交使用
商户能够颠末h5/android/ios使用使用scheme链交去跳转到付出宝小法式。
H5跳转小法式 :
window.location.href="alipays://platformapi/startapp?appId=20170713077xxxxx&page=x/yz&query=xx%3dxx";

Android app 跳转小法式:
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("alipays://platformapi/startapp?appId=20170713077xxxxx&page=x/yz&query=xx%3dxx")); startActivity(intent);

IOS app跳转小法式:
let urlString = "alipays://platformapi/startapp?appId=20170713077xxxxx&page=x/yz&query=xx%3dxx" let url = URL(string: urlString) if UIApplication.shared.canOpenURL(url!) {              UIApplication.shared.open(url!) }else{ let appString = "https://www.apple.com/itunes/" let appUrl = URL(string: appString)              UIApplication.shared.open(appUrl!) }

精彩评论1

avatar
在线会员 awvm1 发表于 2023-2-10 11:09:09 | 显示全部楼层
附上支付宝的文档:小程序scheme链接介绍 | 技术支持 & 案例 FAQ

文档上有个给 alipays://platformapi/startapp 这样的链接传相关页面参数的,就是 query 的那个,但是不清楚是什么问题,按照那个写法,把相关小程序页面上需要的参数写好,在卡包中跳转是没问题的,但是支付宝 APP 的通知里跳转对应小程序相关页面时,参数是有问题的,解决方法是 page 这里把对应小程序地址 + encodeURIComponent(?a=12&b=23) 才好用。

下面是我参考的相关内容
采坑道路3:支付宝小程序,通过scheme跳转小程序页面_Funfction_Zero的博客-CSDN博客_支付宝的scheme
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )