关于小程序中嵌套的h5的分享问题

问题描述:

我有一个详情页面 入口有很多 进入时的页面路径也有很多 举个例子:
可能为 a-b-c-详情页  也可能为a-详情页。大致可以分为这两种路径 一种是直接进入 一种是经过了一个或多个页面  然后问题是什么呢 当我直接从a-详情页时 可以通过我的代码去设置分享 如下

onLoad(options){
			this.url = decodeURIComponent(options.url)
			console.log(this.url)
			const queryObj = this.getUrlParams(this.url)
			if(this.url.includes('fund-detail')){
				this.title = 'XX'
			}else if(this.url.includes('stocksBonds')){
				this.title = 'XX'
			else{
				uni.hideShareMenu()
			}
		},
		onShareAppMessage: function (option) {
			var nowUrl = option.webViewUrl
			console.log(decodeURIComponent(nowUrl))
		    return {
				title:this.title,
				path:'components/webPage?url=' + encodeURIComponent(this.urlDelP(this.url,'usertoken')+ '&usertoken=' + '&miniIsShare=true')
		    }
		},

然后如果我途中多经过了一个或多个(其实都一样啦,主要是进入的第一个页面如果不支持分享)就不会再触发这段代码了 导致我的h5页面无法调用分享

我想了很多办法 使用小程序web-view的通信  这个设计的很反人类 他只有在点击分享或者后退或销毁时才触发 毛用没有 也尝试过使用websocket 但是官方并不支持 

跟想过直接把相关页面直接用小程序写 然后使用jssdk跳转过去   想到这 我灵机一动 既然h5能跳转到小程序 我为什么不再设置一个web-view去专门给这个嵌套的h5页面去使用呢

大概就是  我在小程序单独写一个web-view的页面 然后在嵌套的h5页面的前一个页面 利用wx的jssdk去跳转到这个页面然后把URL带上

代码如下:
 

 if (window && window.__wxjs_environment === 'miniprogram') {
        const url = ‘https://baidu.com’
        wx.miniProgram.navigateTo({ url: `/你的小程序路径?url=` + encodeURIComponent(url) })
      }

这样就可以重新触发判断分享的逻辑了

记录一下 其实很简单 主要是小程序的web-view 好多都支持 跟h5发送消息只能在点击分享 后退 销毁时 这基本就没啥用了 网页加载成功也会有回调 但是在小程序中执行最初的h5页面 在点击进入其他页面一个方法都不会执行
 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值