怎么微信浏览器里 打开APP

简介: 怎么微信浏览器里 打开APP

怎么微信浏览器里 打开APP


最近在做一个需求,希望在微信浏览器里打开 h5 页面,然后直接唤起自家的 APP。搜索一番,发现微信早在 2020 年就开放一个标签,用于打开 APP,再也不需要干儿子了。

没有太多研究时间,大致说下逻辑,备用,代码仅供参考。

官方文档

  1. 绑定域名 登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS 接口安全域名”。
  2. 引入 JS 文件 import wx from 'weixin-js-sdk';
  3. 通过 config 接口注入权限验证配置并申请所需开放标签
wx.config({ openTagList: ['wx-open-launch-app'] }); // 需要使用的开放标签列表,其他配置跟别的微信接口差不多,不赘述 ;
  1. vue 文件中使用的话,需要再main.js那边加标签忽略Vue.config.ignoredElements = ['wx-open-launch-app'];
  2. 这边以 vue 为例,将唤起这种按钮封装成组件,以备之后使用
  • 唤起 app 的按钮,必须使用微信的开放标签,这里需要APP端和微信申请APPID,作为标签参数,同时需要extInfo,是跳转所需额外信息,如果是首页的话,extInfo可以直接是xx://
  • 如果页面需要再浏览器打开,那么需要兼容浏览器的情况
  • 为了方便,一般写一个盒子,浏览器的按钮先写好,然后微信的按钮定位在其上就好,如果是微信,点的就是微信按钮,如果不是点的就是浏览器按钮
  • 浏览器跳转打开 APP 的话,直接用下call-lib库,封装了细节,使用便捷
<template>
  <div>
    <div class="btn-box" style="position:relative">
      <div class="btn" @click="callApp"><slot /></div>
      <!-- 微信环境里,微信标签按钮 定位在普通按钮上 -->
      <wx-open-launch-app v-if="isInWx" id="launch-btn" :appid="config.appId" :extinfo="config.extinfo" @launch="getApp" @error="errorOpen" style="'position: absolute; top: 0; left: 0;right:0; bottom: 0; z-index: 1000;'" >
        <script type="text/wxtag-template">
          <div class='wx-btn' style="width:100%; height:100%;"></div>
        </script>
      </wx-open-launch-app>
    </div>
  </div>
</template>
<script>
import axios from 'axios';
import wx from 'weixin-js-sdk';
import CallApp from 'callapp-lib';
export default {
  name: 'btnOfCallAppInWx',
  props: {
    // 属性appId extinfo scheme package appstore yingyongbao downloadPage fallback wxConfigApi
    config: Object
  },
  data() {
    return {
      isInWx: window.navigator.userAgent
        .toLowerCase()
        .includes('micromessenger')
    };
  },
  created() {
    this.setWxConfig();
    this.initCallApp();
  },
  methods: {
    async setWxConfig() {
      const resApi = await axios().get(this.config.wxConfigApi, {
        params: { url: location.href.split('#')[0] }
      });
      if (!resApi.data) return;
      const { appId, timestamp, nonceStr, signature } = resApi.data.data;
      wx.config({ debug: true, appId, timestamp, nonceStr, signature, jsApiList: [], openTagList: ['wx-open-launch-app'] });
    },
    initCallApp() {
      const { scheme, package: packageRename, appstore, yingyongbao, fallback } =
        this.config;
      console.log(this.config)
      this.callLib = new CallApp({ scheme: { protocol: scheme }, intent: { package: packageRename, scheme }, appstore, yingyongbao, timeout: 4500, fallback });
      console.log(this.callLib)
    },
    // 浏览器打开app
    callApp() {
      this.callLib.open({ path: this.config.extinfo });
    },
    getApp() {
      console.log('success');
    },
    // 不能打开app的话,跳到下载页面,这个是通用的h5介绍的下载页面,这样的话略微友好
    errorOpen() {
      location.href = this.config.downloadPage;
    }
  }
};
</script>

使用组件

引入,传入配置项就好,样式的话加个类名,在父组件写就好

import BtnOfCallAppInWx from '@/components/BtnOfCallAppInWx';
// <btn-of-call-app-in-wx class="btn" :config="{appId,extinfo,scheme,package,appstore,yingyongbao,downloadPage,fallback,wxConfigApi}" btnStyle="">打开APP</btn-of-call-app-in-wx>
// .btn{...}


目录
相关文章
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
650 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
729 1
|
23天前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
48 3
|
5月前
|
小程序 前端开发
生活商城app微信小程序模板源码
生活商城app微信小程序模板源码
65 6
|
2月前
|
移动开发 前端开发 Android开发
开发指南059-App实现微信扫描登录
App是用uniapp开发的,打包为apk,上传到安卓平板中使用
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
315 3
|
2月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
232 1
|
2月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
853 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
435 0
|
2月前
|
小程序
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
627 0

热门文章

最新文章