vue h5网页点击按钮 -- 跳到微信小程序 wx-open-launch-weapp;onMenuShareAppMessage 分享图片不显示,且方法已废弃

h5网页点击按钮,唤醒微信小程序是否可以做?

可以!!,就是有点限制。

通过wx-open-launch-weapp就可以实现,但是限制 微信服务号才可以使用。也就是说必须是微信环境下

文章最下边,有知识扩展,是我踩的坑,很重要!很重要!

一、配置、授权

这里我就不多说了,总之就是引入sdk、授权等等常规操作。不明白的小伙伴,可以看看我专门写授权的一篇文章h5获取code,授权等问题

二、wx.config

假设大家将数据都拿到了,那么需要调用一下wx.config

wx.config({
				// debug: true, // 开启调试模式
				appId: this.appObj.appId, // 必填,公众号的唯一标识
				timestamp: this.appObj.timestamp, // 必填,生成签名的时间戳
				nonceStr: this.appObj.noncestr, // 必填,生成签名的随机串
				signature: this.appObj.signature, // 必填,签名
				jsApiList: ["scanQRCode", "checkJsApi","onMenuShareAppMessage","onMenuShareTimeline"], // 必填,需要使用的JS接口列表
				openTagList:['wx-open-launch-weapp']  // 可选,需要使用的开放标签列表
});

onMenuShareAppMessage :分享给朋友
onMenuShareTimeline :分享到朋友圈
wx-open-launch-weapp : 开发标签-- 打开小程序

三、小程序跳转按钮:

名称必填默认值备注
username所需跳转的小程序原始id,即小程序对应的以gh_开头的id
path所需跳转的小程序内页面路径及参数

到这里,大家因为正常使用wx-open-launch-weapp就可以了吗?No ! No ! No

wx-open-launch-weapp 有个非常尴尬的问题,就是样式设置不好使。

还好问题不严重,折腾了一番。让我找到一个折中的办法。

四、分析问题及解决它

wx-open-launch-weapp 的基本样式还是可以设置的,只是我们正常场景下,排版布局有点满足不了,那么我们就先正常排版,然后将wx-open-launch-weapp定位在需要跳转的盒模型上

上代码

主要3个文件 home.vue 、wx-weapp-box.vue、config.js

//home.vue   主页面

<template>
  <section class="home-wrap"> 
    <div class="box c-weapp-box">
       <wx-weapp-box path="/pages/xxx/list"/>
       <img class="img" src="~@/assets/img/activity/618/yh-1.png" />
    </div>
  </section>
</template>

<script>
import wx from 'weixin-js-sdk'
import {configJS} from '$model/mixins/config'
import wxWeappBox from '$model/wx-weapp-box.vue'
export default {
  components: { wxWeappBox },
	mixins:[configJS],
  data (){
    return {

    }
  },
  methods :{
    shareFn (){
      //处理验证成功的信息
      let _this = this
      
      wx.ready( () =>{
      
      
       //分享到朋友圈
      
       wx.onMenuShareTimeline({
      
        title:'618活动~', // 分享标题
      
        link: `xxx/xxx/xxx/`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      
      //   imgUrl: _this.newDetailObj.thu_image, // 分享图标
      
        success: function (res) {
      
        },
      
        cancel: function (res) {
      
        }
      
       });
      
       //分享给朋友
      
       wx.onMenuShareAppMessage({
      
        title: '618活动~', // 分享标题
      
        desc: '这是一个活动~', // 分享描述
      
        link: `xxx/xxx/xxx/`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      
       imgUrl: 'xxx/xxx/xxx.png', // 分享图标
      
        success: function (res) {
      
         // 用户确认分享后执行的回调函数
      
      
        },
      
        cancel: function (res) {
      
         // 用户取消分享后执行的回调函数
      
      
        }
      
       });
      
      
      
      });
    }
  },
  mounted (){
		this.checkJsApiFn(()=>{
      		this.shareFn()
    	});
	}
}
</script>

<style lang="scss" scoped>
.home-wrap{
 .c-weapp-box{
    overflow: hidden;
    position: relative;
    .img{
      width: 100%;
      height: 100%;
    }
  }
}
</style>
//wx-weapp-box  封装 wx-open-launch-weapp逻辑的组件
<template>
  <div class="c-wx-weapp-box">
    <wx-open-launch-weapp
      username="gh_xxxxx6xx"
      :path="path"
      style="display:block;"
    >
      <script type="text/wxtag-template">
        <button style="width:1000px;height:1000px;">打开小程序</button>
      </script>
    </wx-open-launch-weapp>
  </div>
</template>

<script>
export default {
  props :{
    path:{
      type:String,
      default:''
    }
  }
}
</script>
<style lang="scss" scoped>
.c-wx-weapp-box{
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  opacity: 0;
}
</style>

config.js 就是主要写wx.config ,文章上边提到了,这里就不多说了。

五、知识扩展

a、图片不显示

onMenuShareAppMessage、onMenuShareTimeline 分享时,发现图片加载不出来。

1、图片大小好像没要求,也有说按 5:4 设计的,这个不太重要
2、记得把图片链接 改为网络链接

b、分享方法已废弃

onMenuShareAppMessage 改为 updateAppMessageShareData
onMenuShareTimeline 改为 updateTimelineShareData

安卓手机现在还能用,iOS手机没做兼容不好使了

c、 wx-open-launch-weapp 个数问题

wx-open-launch-weapp标签有个数问题,真的是让我超级无语!!!

问题:

是这样的,我有一个活动页,需要点击不同的商品、优惠卷,进不同的小程序页面。

但是不管我怎么改,页面的最后一个商品,就是打不开小程序,怎么点击都没有,就是不弹出 跳转小程序的提醒

这都不是重点,关键是 它时好时坏,有时候还弹。我都怀疑是不是代码有问题了。

但是改了半天,发现也无处可改,凭着被微信功能坑过多次的经验,突然灵光一闪想到一种可能,是不是 这个标签不能无限用呢???

结果:

然后我数了数,我需要用到这个标签是11个,想到我开始怕写的有问题,删过几个wx-open-launch-weapp标签,确实那是都好使。

于是最后的代码都不改,将页面最开始使用的wx-open-launch-weapp删了一个,发现整个页面,最后一个商品也可以点击了。

总结:
最后的结论,就是当前页面,wx-open-launch-weapp标签,不要超过10个

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值