开始之前你需要做的准备:
- 有一个支付宝小程序!!!(已经发布的那种)
- 小程序关联一个二维码:关联普通二维码
注意:这里面也有坑,试着自己解决吧,这里我就不详细说明了,可能会出相关的文章,到时候会把链接给大家。
- 前提:浏览器扫小程序二维码会得到一个404空页面,所以我们需要创建一个H5页面来跳转到支付宝APP再进入到小程序里面
开始正题
一、创建一个html页面(名称随便),在script里面添加
//用window的onload事件,窗体加载完毕的时候执行
window.onload = function () {
window.location.href = 'alipays://platformapi/startapp?appId=2021002102670825&page=pages/my-alipay/my-alipay&query=https://jkt.ikanke.cn/category/dD13bHJ5JnJjPXVuZGVmaW5lZCZpZD1jMWVkNGFlZTZhMjY0ZTVkOTA5MDAxMmJlMTgxMWQxMw=='
}
- alipays://platformapi/startapp? 不变,跳转到支付宝app;
- appId= 你需要跳转的小程序appId;
- pages= 你需要跳转到的小程序页面;
- query= 你需要传递的信息(如无需要可以去掉)。
PS:appId在你的支付宝小程序后台里面去找,如下图:
二、到这里你可以使用你的浏览器扫描二维码,Safari
浏览器可以直接跳转到支付宝小程序,但是Android
的浏览器就不可以,所以我们需要一个手动点击跳转的按钮,这里我使用a
标签:
<a id="myId" href="alipays://platformapi/startapp?appId=2021002102670825&page=pages/my-alipay/my-alipay">点击跳转</a>
一个题外话:如果你的page或者query中含有特殊文字,我们需要进行
encodeURIComponent()
编码,具体操作可以查看本篇文章!
下面是我的完整代码,可做参考:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>点击跳转</title>
<style>
html,
body {
padding: 0;
margin: 0;
width: 100%;
height: 100%;
}
.Hjump {
height: 100%;
display: flex;
flex-direction: column;
/* justify-content: center; */
align-items: center;
}
.myImg {
width: 100%;
}
.name {
font-size: 18px;
margin: 80px 0 40px;
}
#myId {
width: 200px;
line-height: 46px;
border-radius: 4px;
background-color: #14b9c7;
color: #fff;
text-align: center;
}
#myId:link,
#myId:visited,
#myId:active {
text-decoration: none;
}
.tips {
display: flex;
align-items: center;
margin-top: 10px;
}
.myIcon {
width: 16px;
margin-right: 6px;
}
.iconText {
font-size: 12px;
color: #a9a9a9;
}
</style>
</head>
<body>
<div class="Hjump">
<img class="myImg" src="./img_banner.png" alt="img" />
<div class="name">正在跳转支付宝小程序中...</div>
<a id="myId" href="">点击跳转</a>
<div class="tips">
<img class="myIcon" src="./icon_notice.png" alt="img" />
<span class="iconText">如不能跳转,请点击上方按钮前往</span>
</div>
</div>
<script>
console.log(123, window.location.href)
var encode = encodeURIComponent('pages/my-alipay/my-alipay')
var myCode =
'alipays://platformapi/startapp?appId=2021002102670825&page=' +
encode +
'&query=' +
window.location.href
document.getElementById('myId').href = myCode
//用window的onload事件,窗体加载完毕的时候
window.onload = function () {
window.location.href = myCode
}
</script>
</body>
</html>