小程序接入h5页面_h5页面和小程序交互
h5页面和小程序交互小程序web-view 组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面。个人类型与海外类型的小程序暂不支持使用。
引入jsdk文挡
h5跳转小程序页面 demo$('.span-icon1').click(function(){
wx.miniProgram.navigateTo({url:'/pages/share/share'});
})
h5嵌入小程序传递message给小程序wx.miniProgram.postMessage(Util.shareToWechart(params)); // 传递消息给webview
web-view 通过属性 bindmessage 触发得到h5传过来的消息。
相关的apiwx.miniProgram.navigateTo //跳转小程序页面
wx.miniProgram.navigateBack //返回小程序上一个路由
wx.miniProgram.switchTab //切换tab
wx.miniProgram.reLaunch //重新启动
wx.miniProgram.redirectTo // 跳转小程序,删除当前页面,类似 history.replace()
wx.miniProgram.postMessage //向小程序传递信息
wx.miniProgram.getEnv //获取当前环境
//获取小程序环境
wx.miniProgram.getEnv(function(res) {
console.log(res.miniprogram) // true
})
tip网页内 iframe 的域名也需要配置到域名白名单。
开发者工具上,可以在 组件上通过右键 - 调试,打开 组件的调试。
每个页面只能有一个 , 会自动铺满整个页面,并覆盖其他组件。
网页与小程序之间不支持除 JSSDK 提供的接口之外的通信。
在 iOS 中,若存在JSSDK接口调用无响应的情况,可在 的 src 后面加个#wechat_redirect解决。
避免在链接中带有中文字符,在 iOS 中会有打开白屏的问题,建议加一下 encodeURIComponent
这些东西实际上在小程序开发文档都可以查看到,我主要记录一下我在开发web-view的时候,所遇到的一些问题
屏幕适配 (除了屏幕适配外,其他的东西jssdk有提供就用,没有提供就没有办法罗。。。。o( ̄︶ ̄)o)
iPhoneX
ipx再浏览器手机模拟器中,我们可以看到设备的宽高分别为375、812、dpr=3,我们的设计稿是ip6的设计稿,对于ipx需要做单独的样式。
按照我们的思路,可以获取设备信息,动态增减类,来控制样式;也可以写媒体查询,根据屏幕的宽或则高,或则dpr来做控制。
首先,我们项目中不知道谁写了一个判断ipx的的方法。。。。如下
isIphoneX: function () {
return /iphone/gi.test(navigator.userAgent) && (screen.height == 812 && screen.width == 375)
},
同事,告诉我,他们就是用的这个方法,我也就没有在意,粗略一看,没什么问题,是判断ipx的方法,于是乎。。。。。经过我在小程序测试,发现这个
方法,并没有起到作用,原因是web-view组件中嵌入h5页面,你在h5页面中获取的屏幕高度并不是ipx通屏的高度。。。。还记得小程序头顶上的一些东西吗?
经过测试,在小程序web-view中,ipx的height只有724px。。。
发现问题了,立马弃用公共的判断方法,当然,也可以重新判断高度的。我们决定采用媒体查询来做,代码如下:
//ipx 适配
@media only screen and (device-width: 375px) and (device-height:724px) and (-webkit-device-pixel-ratio:3),
only screen and (device-width: 375px) and (device-height:812px) and (-webkit-device-pixel-ratio:3) {
.christmas_activity {
background: url('../images/home-bg-ipx.jpg') no-repeat;
background-size: 100% 100%;
.foot {
height: 2.5rem;
bottom: 0;
}
}
}
这里媒体查询写死了两种屏幕的宽高,一种是ipx通屏,一种是ipx在小程序中的,这样就可以做到ipx的适配。嗯,不错。
但是,只是做到了ipx的适配,如果尺寸不是ipx的尺寸,但是屏幕比ipx还长,或则比它短一点呢?又是另外的问题了,目前,我采用的方法是ip6用一张背景图,比ip6-plus高度还大的手机换ipx的背景图,这样基本可以做到长屏幕手机上面背景图片不会拉伸了,哈哈哈。
其实web-view组件嵌套h5页面还是非常有必要的,就拿我们目前的小程序项目来说的话,主包除外,已经分包两个了,如果不用h5嵌套,过不了多久小程序直接就超额了,还搞个毛线。包的大小都是做了限制的,没办法罗。。。
小程序接入h5页面_h5页面和小程序交互相关推荐
- 小程序接入h5页面_原生小程序接入H5页面,请求后台接口,获取数据
项目开发中赶上三端接入h5的需求,因此本身动手作h5页面,可是在作的过程当中也赶上了许多的问题javascript 小程序端不支持在本地引入,因此须要将h5发布服务器,以请求接口的形式进行访问html ...
- 小程序接入h5页面_微信小程序跳转外部链接(h5页面)以及数据交互
最近项目有个需求,在微信小程序中跳转外部链接完成相关的操作,操作完成后返回微信小程序的相关页面. 1.跳转外部链接(官方文档) 1)入口 //跳转到入口 wx.navigateTo({url: '.. ...
- 小程序接入h5页面_小程序与H5如何互相跳转
由于小程序官方没有提供外部H5网页直接跳转到小程序的api,所以目前只支持小程序内嵌H5,并且只有内嵌的H5才能跳回小程序 小程序跳转H5 需要用到小程序的web-view,官方文档链接 web-vi ...
- 小程序接入h5页面_小程序-实现怎么跳转打开 H5 网页链接(或跳转至公众号文章)...
背景 有时候,因为业务需求,在小程序当中,需要跳转到 h5 网页,或跳转到公众号,形成流量的闭环,那在小程序当中怎么实现呢? 实例效果 前提条件该小程序与需要跳转至的公众号(订阅号/服务号)进行了绑定 ...
- web前端学习(三):微信小程序基于H5规范,开发Android应用程序
前言: 微信小程序开发框架的目标是通过尽可能简单,高效的方式让开发者可以在微信中开发具有原生APP体验的服务. 整个小程序框架系统分为两部分,逻辑层,视图层,小程序提供了自己的视图层描述语言, WXM ...
- 小程序接入h5页面_微信小程序开发接入colorUI
本文接前天的小程序开发第一篇文章,上篇文章完成了微信官方提供的小程序初始模板代码的构建,今天这篇文章主要讲解小程序使用colorUI框架,并构建一个简单的页面. 前注: 1.本文代码基于第一篇文章的基 ...
- h5逻辑_h5页面在微信打开-导航栏标题如何设置
需求 前提 在微信公众号某文章内有一个按钮: 点击按钮跳转到某h5页面上: 由此可见->该h5页面一般在微信内部打开: 需求 在微信环境中将h5页面的导航栏标题设置为'xxx'(自定义); 实现 ...
- 小程序接入流量主、banner广告、激励广告
小程序接入广告 1.什么是微信小程序广告 2.流量主开通流程 3.微信小程序流量主开通以及添加广告步骤 (1) 接入banner广告 (2) 接入激励广告 1.什么是微信小程序广告 2.流量主开通流程 ...
- uni-app开发微信小程序,H5 关于压缩上传图片的问题
文章目录 前言 一.为什么要压缩图片 二.图片压缩方式 1. 微信小程序 2. H5 总结 前言 关于微信小程序.H5兼容性问题,今天就压缩以及上传图片做一个可实现方法的简要阐述. 一. ...
最新文章
- libuv 中文编程指南(零)前言
- leetcode算法题--下降路径最小和
- photoimpression 5中文版
- 约束理论学习随笔(2)---DBR系统
- android分享到指定应用,Android调用系统分享,指定某些应用来分享
- Android WebView对https无响应
- 关于卡尔曼滤波详细推导的理解
- 国产车崛起粉碎德日工业神话
- ex7.Caption属性的运用
- linux系统下回收站,Linux怎么开启回收站功能
- 1秒等于多少微妙,纳秒
- Windows UI 测试
- 解决uni.request时uni.showtoast无效问题
- html app启动页制作,【示例】App引导页的制作
- 阿里实习生测试一面(2017.3.29)
- mysql records_MySQL 基本操作 · LYF_Records
- 计算机机房标准pdf,计算机机房建设标准要点.pdf
- java使用md5以及jar包下载
- 免费OA系统平台在企业发展中的优势(转载)
- 【2020年领域新星】 赵慧婵 清华大学
热门文章
- WPF实现组态软件-逼真的管道和速度可变流体(五)
- Echarts清空图表:There is a chart instance already initialized on the dom.
- Python OpenCV开发MR智能人脸识别打卡系统(四、服务模块设计)
- C语言习题答案【7】(仅参考)
- linux创建磁盘的命令,linux中创建磁盘分区的命令是什么
- DataType 数据类型
- 东南西北十字图_word画东南西北方向图标 怎么在Word里绘制方向十字图标
- LocalDateTime用法
- @Retention(RetentionPolicy.RUNTIME)
- DelphiXE7操作sqlite数据库