微信小程序内联h5页面,实现分享
在小程序内直联h5的页面(pages/webview/webview.js),该页面为<web-view>的容器,使用<web-view>组件
<web-view wx:if="{{h5url}}" src="{{h5url}}" bindmessage="h5PostMessage" ></web-view>
需要bindmessage事件和postMessage方法
bindmessage:网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data }
也就是说,该事件的触发时机只有三种,是延迟的。
可以将分享的数据通过该事件获取。
1、如何分享这个h5页面
在pages/webview/webview.js这个容器页面需要定义两个事件:
//h5向小程序发送的数据
h5PostMessage: function (e) {
this.h5Data= e.detail.data; //当用户点击这个h5页面的分享时获取到
}, // 用户点击右上角分享
onShareAppMessage: function (options) {
return {
title: this.h5Data.title,
desc: this.h5Data.desc,,
path: this.h5Data.path
}
}
h5.js 中使用微信提供的jssdk中的方法
//该方法在页面create完成之后就可以调用,不需要事件去触发,提前将信息发出去,等到点击分享的时候就可以获取到这个信息了
wx.miniProgram.postMessage({
data: {
title: '分享的标题',
desc:'分享的描述',
path:'/pages/share/share.js?data='+JSON.stringfy({url:encodeURIComponent('当前h5页面的url地址')}) //重点,share.js是小程序的页面中,从分享进入的h5的落地页 });
在小程序中需要两个页面,来做web-view 的容器,一个是内联的h5页面,一个是分享出去后,从分享进入的页面
以上是分享的流程
2、怎么从分享进入时,使页面显示的是分享的h5页面
在/pages/share/share.wxml中
<web-view wx:if="{{h5url}}" src="{{h5url}}"></web-view>
在/pages/share/share.js中:
onLoad: function (options) {
var data = options.data;//postMessage path中带的url 参数
var url =decodeURIComponent(data.url);
this.setData({url:url}); }, // 用户点击右上角分享
onShareAppMessage: function (options) {
var path = '/pages/share/share.js'; var url = encodeURIComponent(options.webViewUrl);
path += '?data=' + JSON.stringify({ url: url });
return { path: path };
}
微信小程序内联h5页面,实现分享的更多相关文章
- 小程序内嵌H5页面判断微信及小程序环境
判断微信及小程序环境 1.H5页面引入jweixin-1.3.2.js 2. var ua = window.navigator.userAgent.toLowerCase(); if(ua.matc ...
- 微信小程序内嵌网页能力开放 小程序支持内嵌网页文档说明
为了方便开发者灵活配置微信小程序,张小龙现在开放了小程序的内嵌网页功能,这是一个非常大的惊喜啊,以后意味着你只要开放一个手机端网站,就可以制作一个小程序了哦.操作方法1.开发者登录微信小程序后台,选择 ...
- 小程序-web-view嵌入H5页面遇到的bug
遇到的问题1:ios页面中,内容过多时有下滑真是功能,但是下滑的时候回看到底部的微信自带的灰色背景及H5的域名(ios的webview中上/下拉露出黑灰色背景问题) 解决办法:给body添加样式--- ...
- 一招解决微信小程序中的H5缓存问题
一招解决微信小程序中的H5缓存问题1.问题描述开发过程中,为了更新代码方便,往往会在小程序中嵌入H5页面.但问题来了,小程序原生代码更新版本后,简单的从微信中删除或者代码强刷就可以解决缓存问题,但小程 ...
- 微信小程序内嵌业务域名内的网页
微信小程序在2017年11月左右开放了内嵌网页的功能,即新组件<web-view>.官方文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/com ...
- 微信小程序左右滑动切换页面示例代码--转载
微信小程序——左右滑动切换页面事件 微信小程序的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend. 这三个事件最重要的属性是pageX和pageY,表示X, ...
- 微信小程序内判断是否关注公众号(JAVA)
微信小程序内判断是否关注公众号(JAVA) 思路来源(第二种): https://blog.csdn.net/Yanheeee/article/details/117295643 /** * 总体思路 ...
- 微信小程序内嵌网页的一些(最佳)实践
前言 3 个月前,微信小程序推出了 web-view 组件引发了一波小高潮,笔者所在的大前端团队写过一篇浅析,详情可见:浅谈微信小程序前端生态. 我们曾大胆猜想,这一功能,可能直接导致小程序数量增长迎 ...
- 小程序内嵌H5——判断小程序环境的坑
现在各种小程序风靡,这边H5的需求还没有搞定,产品又要求做小程序版本,做可以,关键是618前上线,我-- whatever,618要做推广,日期订了,剩下的就只能是排期,定方案,尽可能完成. 最后和产 ...
随机推荐
- C#学习-方法
方法是由方法签名和一系列语句的代码块组成. 其中方法签名包括方法的访问级别(比如public或private).可修饰符(例如abstract关键字).方法名称和参数. C#也支持方法重载.方法重载指 ...
- 深入了解Cookie
1.Cookie是什么 1.由于http是无状态的协议,一旦客户端和服务器的数据交换完毕,就会断开连接,再次请求,会重新连接,无法存储数据.2.Cookie的出现是为了下次链接时,你之前存储了哪些数据 ...
- System.Data.Entity.Internal.AppConfig"的类型初始值设定项引发异常
在学习EF code First的小案例的时候,遇见了这个异常 <configSections> <!-- For more information on Entity Framew ...
- [转]Ubuntu /home下中文目录如何修改成英文?
http://www.linuxidc.com/Linux/2016-05/130873.htm 打开终端,在终端中输入命令: export LANG=en_US xdg-user-dirs-gtk- ...
- 通过ping命令查看服务器是linux还是windows系列
通过ping命令识别服务器类型
- Flink--time-window 的高级用法
1.现实世界中的时间是不一致的,在 flink 中被划分为事件时间,提取时间,处理时间三种. 2.如果以 EventTime 为基准来定义时间窗口那将形成 EventTimeWindow,要求消息本身 ...
- Linux read line
cat ./port_list|while read linedo done
- js中的new Option默认选中
new Option("文本","值",true,true).后面两个true分别表示默认被选中和有效! //js默认选中 var sel = document ...
- 059 SparkStream介绍
离线计算框架:MR,hive-->对时间要求不严格 实时计算框架:SparkCore-->要求job执行时间比较快 交互式计算框架:SparkSQL,Hive,-->提供SQL操作的 ...
- Java中菜单的实现以及画实线与画虚线之间的自由转化
1.Java画线 1 import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.a ...