支付宝小程序踩坑系列:浏览器扫码跳转支付宝小程序

开始之前你需要做的准备:

  1. 有一个支付宝小程序!!!(已经发布的那种)
  2. 小程序关联一个二维码:关联普通二维码

    注意:这里面也有坑,试着自己解决吧,这里我就不详细说明了,可能会出相关的文章,到时候会把链接给大家。

  3. 前提:浏览器扫小程序二维码会得到一个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在你的支付宝小程序后台里面去找,如下图:

image.png

二、到这里你可以使用你的浏览器扫描二维码,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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。