收藏
回答

链接跳转小程序代码一样外部浏览器打开无法唤醒微信?

按照官方源码调试的还是不行没怎么解决呢?外部浏览器打开链接无法唤起微信小程序

回答关注问题邀请回答
收藏

1 个回答

  • 拼车之家
    拼车之家
    2021-06-25

    <html>

    <head>

        <title>打开小程序</title>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">

        <script>

          window.onerror = e => {

            console.error(e)

            alert('发生错误' + e)

          }

        </script>

        <!-- weui 样式 -->

        <link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/2.4.1/weui.min.css">

        </link>

        <!-- 调试用的移动端 console -->

        <script src="https://cdn.jsdelivr.net/npm/eruda"></script>

        <script>        eruda.init();</script>

        <!-- 公众号 JSSDK -->

        <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

        <!-- 云开发 Web SDK -->

        <script src="https://res.wx.qq.com/open/js/cloudbase/1.1.0/cloud.js"></script>

        <script>

        function request(paras) {

                var url = location.href;

                var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");

                var paraObj = {}

                for (i = 0; j = paraString[i]; i++) {

                    paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);

                }

                var returnValue = paraObj[paras.toLowerCase()];

                if (typeof (returnValue) == "undefined") {

                    return "";

                } else {

                    return returnValue;

                }

            }

            window.onload=function(){

              document.getElementById("launch-btn").setAttribute('path', "/pages/PIngCarListInfo/PIngCarListInfo?cfcsJD=" + request("cfcsJD") + "&cfcsWD=" + request("cfcsWD") + "&ddcsJD=" + request("ddcsJD") + "&ddcsWD=" + request("ddcsWD") + "&number="+request("number")+"&sessionIdSend="+request("sessionIdSend")+"&sessionGroupId="+request("sessionGroupId")) 

            }

          function docReady(fn) {

            if (document.readyState === 'complete' || document.readyState === 'interactive') {

              fn()

            } else {

              document.addEventListener('DOMContentLoaded', fn);

            }

          }


          docReady(async function() {

            var ua = navigator.userAgent.toLowerCase()

            var isWXWork = ua.match(/wxwork/i) == 'wxwork'

            var isWeixin = !isWXWork && ua.match(/MicroMessenger/i) == 'micromessenger'

            var isMobile = false

            var isDesktop = false

            if (navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|IEMobile)/i)) {

              isMobile = true

            } else {

              isDesktop = true

            }

            console.warn('ua', ua)

            console.warn(ua.match(/MicroMessenger/i) == 'micromessenger')

            var m = ua.match(/MicroMessenger/i)

            console.warn(m && m[0] === 'micromessenger')


            if (isWeixin) {

              var containerEl = document.getElementById('wechat-web-container')

              containerEl.classList.remove('hidden')

              containerEl.classList.add('full', 'wechat-web-container')


              var launchBtn = document.getElementById('launch-btn')

              launchBtn.addEventListener('ready', function (e) {

                console.log('开放标签 ready')

              })

              launchBtn.addEventListener('launch', function (e) {

                console.log('开放标签 success')

              })

              launchBtn.addEventListener('error', function (e) {

                console.log('开放标签 fail', e.detail)

              })


              wx.config({

                // debug: true, // 调试时可开启

                appId: 'wx2d381e94eb12af94', 

                timestamp: 0, // 必填,填任意数字即可

                nonceStr: 'nonceStr', // 必填,填任意非空字符串即可

                signature: 'signature', // 必填,填任意非空字符串即可

                jsApiList: ['chooseImage'], // 安卓上必填一个,随机即可

                openTagList:['wx-open-launch-weapp'], // 填入打开小程序的开放标签名

              })

            } else if (isDesktop) {

              // 在 pc 上则给提示引导到手机端打开

              var containerEl = document.getElementById('desktop-web-container')

              containerEl.classList.remove('hidden')

              containerEl.classList.add('full', 'desktop-web-container')

            } else {

              var containerEl = document.getElementById('public-web-container')

              containerEl.classList.remove('hidden')

              containerEl.classList.add('full', 'public-web-container')

              var c = new cloud.Cloud({

                // 必填,表示是未登录模式

                identityless: true,

                // 资源方 AppID

                resourceAppid: 'wx2d381e94eb12af94',

                // 资源方环境 ID

                resourceEnv: 'pinchezhijia-3g1snhy032a5280c',

              })

              await c.init()

              window.c = c


              var buttonEl = document.getElementById('public-web-jump-button')

              var buttonLoadingEl = document.getElementById('public-web-jump-button-loading')

              try {

                await openWeapp(() => {

                  buttonEl.classList.remove('weui-btn_loading')

                  buttonLoadingEl.classList.add('hidden')

                })

              } catch (e) {

                buttonEl.classList.remove('weui-btn_loading')

                buttonLoadingEl.classList.add('hidden')

                throw e

              }

            }

          })


          async function openWeapp(onBeforeJump) {

            var c = window.c

            const res = await c.callFunction({

              name: 'public',

              data: {

                action: 'getUrlScheme',

              },

            })

            console.warn(res)

            if (onBeforeJump) {

              onBeforeJump()

            }

            location.href = res.result.openlink

          }

        </script>

        <style>

            .hidden

            {

                display: none;

            }

            

            .full

            {

                position: absolute;

                top: 0;

                bottom: 0;

                left: 0;

                right: 0;

            }

            

            .public-web-container

            {

                display: flex;

                flex-direction: column;

                align-items: center;

            }

            

            .public-web-container p

            {

                position: absolute;

                top: 40%;

            }

            

            .public-web-container a

            {

                position: absolute;

                bottom: 40%;

            }

            

            .wechat-web-container

            {

                display: flex;

                flex-direction: column;

                align-items: center;

            }

            

            .wechat-web-container p

            {

                position: absolute;

                top: 40%;

            }

            

            .wechat-web-container wx-open-launch-weapp

            {

                position: absolute;

                bottom: 40%;

                left: 0;

                right: 0;

                display: flex;

                flex-direction: column;

                align-items: center;

            }

            

            .desktop-web-container

            {

                display: flex;

                flex-direction: column;

                align-items: center;

            }

            

            .desktop-web-container p

            {

                position: absolute;

                top: 40%;

            }

        </style>

    </head>

    <body>

        <div class="page full">

            <div id="public-web-container" class="hidden">

                <p class="">

                    正在打开 “拼车之家小程序”...</p>

                <a id="public-web-jump-button" href="javascript:" class="weui-btn weui-btn_primary weui-btn_loading"

                    onclick="openWeapp()"><span id="public-web-jump-button-loading" class="weui-primary-loading weui-primary-loading_transparent">

                        <i class="weui-primary-loading__dot"></i></span>拼车之家小程序 </a>

            </div>

            <div id="wechat-web-container" class="hidden">

                <p class="">

                    点击以下按钮打开 “拼车之家小程序”</p>

                <!-- 跳转小程序的开放标签。文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html -->

                <wx-open-launch-weapp id="launch-btn" username="gh_4d13821a9ea3">

              <template>

                <button style="width: 200px; height: 45px; text-align: center; font-size: 17px; display: block; margin: 0 auto; padding: 8px 24px; border: none; border-radius: 4px; background-color: #07c160; color:#fff;">打开小程序</button>

              </template>

            </wx-open-launch-weapp>

            </div>

            <div id="desktop-web-container" class="hidden">

                <p class="">

                    请在手机打开网页链接</p>

            </div>

        </div>

    </body>

    </html>


    2021-06-25
    有用
    回复 4
    • 欢乐马
      欢乐马
      2021-07-13
      你指的是H5打开是吗?必须是正式发版的小程序
      2021-07-13
      1
      回复
    • 拼车之家
      拼车之家
      2021-07-23回复欢乐马
      是的,发布正式版就可以使用了
      2021-07-23
      回复
    • Waysdon
      Waysdon
      2021-09-17
      大佬。看不懂啊。能详细说下麽?
      2021-09-17
      回复
    • 拼车之家
      拼车之家
      2021-09-24回复Waysdon
      就是可以链接跳转到小程序
      2021-09-24
      回复
登录 后发表内容