小程序webview组件的使用笔记

web-view官方文档

使用条件:

非个人类型的小程序(个人类型小程序在开发者工具能正常使用测试,但是如果上传代码到服务器就不能正常使用了)

组件属性:

  • src : 跳转的链接
    1)可打开关联的公众号的文章 ,src值为公众号文章链接;

    2)打开其他网页,如H5页面等;(需配置小程序业务域名不是服务器域名
    登录微信管理开发平台
    在这里插入图片描述
    在这里插入图片描述

小程序代码:
<web-view src="{{src}}"></web-view>

组件事件

  • bindmessage

1)触发方式:

在跳转到的页面中,引入JSSDK1.3.2 ,可以使用小程序接口。当页面中使用小程序接口wx.miniProgram.postMessage向小程序发送消息时,可触发小程序bindmessage事件。

微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包。通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

页面代码:
wx.miniProgram.postMessage({ data: {foo: 'bar'} })

2)小程序触发该事件的场景:

当小程序的后退、组件销毁、分享 ,所以当网页端向小程序端发送消息,小程序端不是实时接收的,需要在一定的场景下才能触发接受到参数。

3)小程序端接收的参数

xml:
<web-view src="src" bindmessage="getMgs"></web-view>
js:
getMgs(e){
 console.log(e.data)
}

当有多个消息未触发接收时,会把消息提交(push)到一个消息队列,返回的参数是个消息集合

  • bindload:网页加载成功时候触
  • binderror:网页加载失败的时候触发
webview网页中支持的js-sdk接口

在官方文档有说明 https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

判断H5是否在小程序环境

有不同端调用H5页面,可能不同端对H5的交互不一样,所以有时候需要判断调用H5页面的是否时小程序端

web-view页面代码:
function ready() {
  console.log(window.__wxjs_environment === 'miniprogram') // true
}
//注意: = = 弄了好久,为啥开发者工具下面的控制台打印不出console的信息,后来才知道web-view页面有自己单独的调试窗口,在web-view页面上右击,就会出现调试两个字,点击就可进入web-view的调试窗口了
if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {
  document.addEventListener('WeixinJSBridgeReady', ready, false)
} else {
  ready()
}

//注意wx.miniProgram.getEnv方法只有在微信环境才有效,非微信环境下无效,所有使用该方法前先判断是否在微信环境下。  

let ifWx = navigator.userAgent.toLowerCase()  // ios的avigator.userAgent中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
if(ifWx .match(/MicroMessenger/i)=="micromessenger") {
wx.miniProgram.getEnv(function(res) {
  console.log(res.miniprogram) // true
})

//或者通过判断navigator.userAgent(声明了浏览器用于 HTTP 请求的用户代理头的值)中是包含miniProgram字样(但是在ios等一些机型里,微信环境也没有miniProgram字样,所有最好用第二种方法)
var userAgent = navigator.userAgent;
var isMini = /miniProgram/i.test(userAgent);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值