微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。同时提供一系列工具帮助开发者快速接入并完成小程序开发。关于如何注册配置就不多言了,本文主要还是体验了下web-view的功能。

web-view详解

有了这个组件之后,小程序可以很好的嵌入一些页面,可以环境小程序size告急的问题,同样也使开发更加便捷,毕竟小程序开发者基本都对前端开发较为了解。

web-view能力

说再多还是需要去看官方文档,web-view文档 ,

兼容

首先就需要注意:兼容问题,版本库和对应版本比例

基础库 1.6.4 开始支持,低版本需做兼容处理,

个人类型与海外类型的小程序暂不支持使用。

目前而言,基本80%的用户会升级微信,所以其实不必担心版本问题,官方截止2017-12-01提供的数据也说明88%的用户支持web-view。

使用

web-view 组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面;

属性:src 是String类型,是一个网站的url,默认值是none,webview 指向网页的链接。需登录小程序管理后台配置域名白名单。

可以配合Page实例的onLoad方法来获取url的具体值,也就是一个微信小程序页面中只有一个web-view,但是这个web-view的内容可以根据上一个页面传递的参数来获取页面URL,后面会讲如何实践,

官方提供如下接口:

web-view和小程序的通信

1. 由小程序到web-view,其实本质上WEB-VIEW也是小程序的一个页面,所以小程序到web-view是正常的小程序间的通信,通过wx.navigateTo、wx.redirectTo,带上url参数,query参数就像正常url的参数一样跟着后面,然后在web-view的页面的Page实例里面通过onLoad的方法的参数来获取url的值,设置给web-view的src属性为改值即可。

2. 由web-view到小程序,由于在web-view的跳转通常是在src对应的网页中的操作来处理的,所以需要结合jssdk来处理,不需要wx.config配置,直接通过script标签来引入[res.wx.qq.com/open/js/j](http://link.zhihu.com/?target=https%3A//res.wx.qq.com/open/js/jweixin-1.3.0.js),就可以使用wx.miniProgram.navigateTo、wx.miniProgram.navigateBack、wx.miniProgram.switchTab、wx.miniProgram.reLaunch、wx.miniProgram.redirectTo接口,就像小程序之间的跳转一样,单是只能在当前小程序页面内跳转。

支持以下部分JSSDK接口图像、音频、摇一摇、地理位置等信息,具体可以查看web-view文档 ,不过这些需要通过wx.config来授权,就和服务号开发类似。

用户分享时可获取当前的URL,即在onShareAppMessage回调中返回webViewUrl参数。

Page({

onShareAppMessage(options) {

console.log(options.webViewUrl)

}

})

在网页内可通过window.__wxjs_environment变量判断是否在小程序环境。

// web-view下的页面内 console.log(window.__wxjs_environment === 'miniprogram') // true

web-view实践

在目前实践了部分web-view的功能,

//index.js

Page({

data: {

url: 'https://test.com'

},

onLoad: function(options){

options.url ? this.setData({url: options.url}) : wx.navigateBack({delta: 2});

}

});

//index.wxml

在这个web-view中,指向的就是https://test.com的内容,所以在在https://test.com中跳转出回到小程序,需要修改https://test.com中的JavaScript,

test

webview-wechat-detail

detail

返回小程序

/* eslint-disable */

$(function(){

doucument.cookie = 'bb=bbbbbb';

$('#btn').on('click',function(s) {

document.cookie = 'aa=ssssss';

wx.miniProgram.navigateTo({

url:'/pages/index?test=testtest',

success: function(){

console.log('success')

},

fail: function(){

console.log('fail');

},

complete:function(){

console.log('complete');

}

});

});

});

如果需要使用一些其他的的jssdk的方法,那就需要参照公众号的开发配置了。

web-view采坑

由于很多使用中的一些问题

1.打开的域名没有在小程序管理后台设置业务域名(注意是业务域名,不是服务器域名)

2.打开的页面必须为https服务

3.打开的页面302过去的地址也必须设置过业务域名

4.web-view空白问题,请升级微信客户端到 6.5.16

5.页面可以包含iframe,但是iframe的地址必须为业务域名

6.web-view不支持支付能力,web-view的API能力见web-view的文档说明

7.开发者自己检查自己的https服务是否正常,测试方法:普通浏览器打开对应的地址

8.如果web-view使用了公众号授权的服务,开发者工具提示网页开发者的问题,请见:公众号开发

其他的问题注意:

每个页面只能有一个,会自动铺满整个页面,并覆盖其他组件,小程序对webview的监控状态基本没有,只能设置src设置url。

关于小程序和web-view的通信, → 小程序只能通过JSSDK 1.3.0提供的接口返回小程序页面,设置参数来传值,反之,小程序到webview也是一样的,只能是src的路径带上参数;

web-view不支持支付能力,是指无法唤起小程序的直接支付窗口,对于h5的那套支付应该是支持的,但是web-view 里边没法使用 微信支付的 JSAPI,也就是可能可以h5的相关的的支付中心来支付;

关于层级,在webview中可以无限跳转,对于导航条返回和物理键返回都会回到上一个页面直到退出webview,就像history.back。

webview中的html的title会自动放到小程序的头部作为标题;

webview中可以正常使用ajax之类的操作。

一些可能的问题问题汇总

微信小程序调试webview_关于微信小程序webview的使用相关推荐

  1. 微信小程序调试webview_微信小程序内嵌webview相关知识点整理

    前言 随着微信小程序的广泛应用,越来越多的商家选择将营销阵营选择迁移到了小程序中,但受其小程序体积限制的影响,不能够完全满足商户的要求,应运而生的web-view组件很好的解决的这一问题.一方面内嵌w ...

  2. 微信小程序调试webview_使用 Appium 测试微信小程序 Webview

    感谢 文章的主要思路来自于seveniruby的Appium 微信 webview 的自动化技术,非常感谢~~ 打开调试功能 通过微信打开debugx5.qq.com 勾选[打开TBS内核Inspec ...

  3. 在无法进行微信应用的调试和无法使用微信的web开发工具的时候我们怎么才能调试...

    当我们接手的一些微信web项目的时候,也就是公众号啊企业号啥的.如果这个项目已经做了微信授权功能.而我们又不能把微信授权的部分去掉或者去掉可能后续都进行不下去的情况下.我们这是后怎么办呢.本来这应用就 ...

  4. 微信打开X5调试,使微信页面可以在谷歌浏览器调试

    由于微信对很多页面做了限制,微信开发工作者需要对页面进行调试 这个时候可以用到谷歌 首先我们需要打开微信 TBS 调试 http://debugx5.qq.com 也可微信直接扫描二维码 然后打开手机 ...

  5. 小程序开发版只能自己微信真机调试,别人微信步行,小程序开发版如何提供给测试人员测试

    今天项目基本上完结了,接口也都调完了.自测的时候想用不统计机型多个微信号登录同时测试观察机型表现.结果发现为什么我的账号可以访问到小程序,别人的不可以.然后就按照标题类似的方式百度,发现并没有多少帖子 ...

  6. 小程序调试扫描二维码进入小程序,调试各种场景进入小程序

    使用开发者工具模拟扫描进入小程序内容页 使用开发者工具模拟进入小程序的场景 使用开发者工具模拟启动小程序的参数. 在小程序中的 开发者工具里, 工具 -- 编译配置中可以配置小程序的编译条件, 如设置 ...

  7. python示例异常处理与程序调试_笔记:Python异常处理与程序调试

    Python异常处理与程序调试 Python提供了强大的异常处理机制,通过捕获异常可以提高程序的健壮性.异常处理还具有释放对象,中止循环的运行等作用.在程序运行的过程中,如果发生了错误,可以返回事先约 ...

  8. Qt Creator调试Qt Quick示例应用程序

    Qt Creator调试Qt Quick示例应用程序 调试Qt Quick示例应用程序 调试Qt Quick示例应用程序 Same Game演示展示了如何使用JavaScript编写所有游戏逻辑的QM ...

  9. C# 编程入门第五课,VS2019程序调试,for循环,水仙花数,Console.Write,又一种类型变换,三元表达式,产生随机数

    C# 编程入门第五课 文章目录 C# 编程入门第五课 1. VS2019程序调试 2. for循环 3. 水仙花数 4. Console.Write() 5. 又一种类型变换 6. 三元表达式 7.产 ...

最新文章

  1. 省委书记表态:以“倾省之力”,支持中国科大建国际校区!
  2. TCP/IP详解--学习笔记(7)-广播和多播,IGMP协议
  3. mysql crm动态列设计_值得收藏:一份非常完整、详细的MySQL规范
  4. android monkey压力测试(二)
  5. 你在第几楼?80后、90后扎心图鉴
  6. hdu 5616 Jam's balance 正反背包+转换
  7. 决策树:特征分布空间划分方法
  8. NSubstitute完全手册(一)入门基础
  9. Linux学习笔记4
  10. 简化的插入排序 (15 分)
  11. 阿里投资小鹏汽车,是提速自动驾驶布局的开端吗?
  12. Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)...
  13. 专题七:MATLAB符号计算
  14. 在线演示(动画演示)各种算法的实现过程
  15. CCC认证有没有2019年新的具体的收费标准
  16. 禁止QQ自动转义表情字符
  17. 视频素材有水印怎么去除?
  18. OpenCV绘制朱利亚(Julia)集合图形
  19. 中继器制作联动下拉列表
  20. PCB多层板设计总结-层的分布设置

热门文章

  1. 免费试用一年微软云服务领取教程
  2. 何为二进制计算机语言,二进制解码时尚新青年
  3. HDU6069(区间筛)
  4. 关于更佳学术搜索及Android SDK更新问题
  5. Python学习笔记——变量(图灵学院)
  6. 安装计算机一级出现appcrash,问题事件名称: APPCRASH 终于解决了。
  7. Python快速上手攻略
  8. 【脑洞大开】神经网络vs非公理化推理系统(NARS)
  9. Airbnb 北京地区数据可视化——用户篇
  10. 重装系统后Win10无故关机解决