小程序内嵌h5网页:
<web-view src="你的网页地址" bindmessage="bindmessage" />
网页地址要配置在小程序的业务域名里。不配置的话,本地测试可以勾选开发者工具右上角详情-本地设置-不校验合法域名。但是不能扫码预览,只能真机调试。
网页跳转小程序的方法:
var ua = window.navigator.userAgent.toLowerCase();
//先判断是否微信浏览器
if (ua.match(/MicroMessenger/i) == "micromessenger") {
//再判断一下是否在小程序里
wx.miniProgram.getEnv((res) => {
if (res.miniprogram) {
var url = "../index/main?type=2"; //我这个是mpvue项目的目录结构,原生小程序是另一种写法。参数写在后面就可以了,目前嵌套的网页是不能调小程序的方法的,只能通过跳转传递参数
wx.miniProgram.navigateTo({ url });
}
});
}
那么不是内嵌在小程序里的网页能不能直接跳转小程序呢?微信sdk1.6之后是可以的了。记得引入哦:http://res.wx.qq.com/open/js/jweixin-1.6.0.js
具体写法:
path是要跳转的小程序页面,.html不能省掉。
<script type="text/wxtag-template">是vue项目的写法,防止与组件的<template>冲突。
如果不是vue或者其他spa项目,可以直接使用<template>
<wx-open-launch-weapp
id="launch-btn"
path="pages/index/index.html"
username="gh_开头的小程序原始id,不是appid哦"
>
<script type="text/wxtag-template">
<style>
//这里写按钮样式,写在外面是不行的
</style>
<button class="btn">
跳转小程序
</button>
</script>
</wx-open-launch-weapp>
除此之外还要先进行wx.config才行:
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: appId, // 必填,公众号的唯一标识
timestamp: 后端获取, // 必填,生成签名的时间戳
nonceStr: 后端获取, // 必填,生成签名的随机串
signature: 后端获取, // 必填,签名
jsApiList: ["scanQRCode"], // 必填,需要使用的JS接口列表,如果只需要开放标签,这个也不能空着,随便写个就行
openTagList: ["wx-open-launch-weapp"], // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
});
还有,记得把网页的地址加到公众号的“JS接口安全域名”下的,就可使用开放标签跳转任意合法合规的小程序啦