微信小程序的组件web-view推出有一段时间了,这个组件的推出可以说是微信小程序开发的一个重要事件,让微信小程序不会只束缚在微信圈子里了,打开了一个口子,这个口子或许还比较小,但未来有无限可能。

简单思考

1.通过web-view嵌入网页功能开放,给微信小程序的发展带来无限的可能,有好,也有坏,但利大于弊。好处在于让微信的开放性更强,无论将来混合模式和还是纯H5都有更多的机会在微信这个大舞台有表演机会。坏处可能就是也打开了漏洞之门,会有更多鱼龙混杂情况出现,这对微信的生态圈是个挑战。

2.这个口子的打开,再关上的可能性就不大了,而且只能越大越开,按照微信的节奏,微信应该有足够把握才会开放这个功能,一切都在微信的掌控当中。

3.大量基于h5的网站或应用都会被“小程序化”,微信这个“大”浏览器成为移动互联网海量流量的入口。微信搜索会不会成为移动搜索的绝对第一的搜索?

4.对前端工程师这个职业带来巨大的影响,降低了开发小程序的成本,让前端工程师更关注网页的架构,减小微信小程序的总体开发压力。

5.让热部署、热更新更为简单,原来调整小程序风格和布局需要重新审核和发布,这个周期有些长。有了web-view后,基于它开发的页面,可以随时改变外观、布局、数据。

简单实践

1.web-view里内嵌的域名域名在小程序管理后台设置业务域名,注意是业务域名,不是服务器域名。另外个人小程序目前是没有这个设置,因此也就无法使用这个功能。

2.一个页面(wml)只能放置一个web-view,且会覆盖其他的组件铺满屏幕,这时候你就当微信小程序是个浏览器好了。

3.web-view打开的页面必须是支持https的。

4。目前支持的jssdk接口还比较少,只支持“图像接口”,“音频接口”,“智能接口”,“设备信息”,“地理位置”,“摇一摇周边”,“微信扫一扫”,“微信卡券”,“长按识别”,比如获取用户信息,微信支付之类都不行,我猜以后会慢慢放开,逐步达到微信公众号的开放程度。

5.支持iframe ,最开始还不需要域名白名单(业务域名),后来把这个漏洞给补上了,不给人滥用的口子了。如果你页面上有google adsense可以要注意了,如果使用的苹果版微信,用web-veiw打开含有google adsense就会报错(有的安卓偶尔也会报错,原因不明),因为google adsense会虚拟一个iframe出来,google的域名自然不会在你的业务域名里,就会报错。

6.如果你的网站做了302跳转,跳转的域名也要设置在业务域名里,别想着鸡贼,能躲过这个配置。

7.通过内嵌网页的功能可以实现站内链接的跳转,当然不是小程序页面的跳转,而是在小程序里打开网页,虽然感觉上有些别扭,不过总算弥补了无法跳转的麻烦,对资讯类的小程序是很好的功能。

8.通过在onload里的options.url 参数可以解决分享web-view页面加载的问题,不过需要对options.url 通过decodeURIComponent进行解码,因为在分享转发的时候,微信小程序对url的特殊字符进行了十六进制编码,因此需要通过decodeURIComponent来解码,小程序的web-view页面才能正常加载。

9.web-veiw页面有时候无法触发onShareAppMessage方法,原因不明。如果有非web-view的页面和web-view同时存在的小程序,如果是非web-view的页面跳转到web-view页面,在转发web-view页面的时候无法触发onShareAppMessage方法。如果有非web-view的页面和web-view同时存在的小程序,如果是非web-view的页面跳转到web-view页面,在转发web-view页面的时候无法触发onShareAppMessage方法。

10.web-veiw页面 无法使用“打开调试”功能,如果需要看调试,需要返回上一个不使用web-view的页面查看。

11.web-view 嵌入的网页里如果有白名单以外的域名链接,点击后会报错。

12.web-view不支持微信支付,但web-view内嵌的页面使用了公众号授权的微信支付,是可以在内嵌的页面使用微信支付的。换句话说,如果如果用web-view内嵌公众号的h5页面,利用JSSDK是可以使用微信支付的。

----------------------------------------------------------------------------

欢迎关注我的网站和微信公众号,文章会在我的网站和微信公众号上同步发布。

本文首发链接:https://www.watch-life.net/wechat/web-view.html

我的网站:守望轩

微信公众号名称:守望轩

微信公众号:iwatchlife

你也可以扫描或长按以下二维码

微信小程序web-view的简单思考和实践的更多相关文章

  1. 原创:微信小程序+WEB使用JS实现注册【60s】倒计时功能

    1.效果图: 2.页面仅仅利用了JS的相关功能,包含:wxml.js.wxss 2.1wxml页面代码: <text>绑定手机</text> <form bindsubm ...

  2. 微信小程序(一)--简单的介绍

    转自:https://developers.weixin.qq.com/miniprogram/dev/index.html 响应的数据绑定 框架的核心是一个响应的数据绑定系统. 整个小程序框架系统分 ...

  3. 微信小程序 + thinkjs + mongoDB 实现简单的前后端交互

    说明:这段时间跟老师学习了一下mongodb数据库,这次也是第一次搭建后台服务,出了不少差错,特此来复盘一下,非常感谢对我提供帮助的同学~ 一.使用 thinkjs + mongodb 创建后台服务 ...

  4. 微信小程序实战--开发一个简单的快递单号查询

    功能如图: 虽然工作中只负责小程序后台开发,但是还是小程序开发产生了浓厚的兴趣,官方文档也是超级详细了 这里就简单做一个快递单号的查询: 新建一个page: 接着就可以写wxml了.这里用一个简单的i ...

  5. 微信小程序wx.request的简单封装

    前言 之前写小程序,每次请求后台时都直接调用原生的API,wx.request,每次都要写url,data,回调函数等,正好前段时间,小程序项目需要添加新内容,趁此机会,做一个封装的请求工具,比较简单 ...

  6. 关于微信小程序获取view的动态高度填坑

    wx.createSelectorQuery().select('#box').boundingClientRect(function (rect) { width = rect.width heig ...

  7. 【微信小程序】view顶部固定或底部固定 + scroll-view中的元素view也可以使用position:fixed;固定选中元素位置

    1.顶端固定核心代码如下: <view class="page__hd" style="position:fixed; top:0;width: 750rpx;&q ...

  8. 微信小程序将view动态填满全屏

    一.在app.js利用官方方法获取设备信息,将获取到的screenHeight.windowHeight度量单位统一由rpx换算为px 注:官方文档给出 [rpx换算px (屏幕宽度/750)  ][ ...

  9. 微信小程序WEB工具安装

    1.下载工具链接:http://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201715 2.安装完成后图片样式如图: 3.新 ...

  10. 微信小程序 -- scroll view

    效果图:横向滚动和纵向滚动 scroll view使用方法文档,前面已经介绍查找文档方法,此处不再赘述 一.横向滚动 创建一个页面scroll-nav 然后,在.wxml文件中排版 <!--水平 ...

随机推荐

  1. Git学习笔记--命令

    git init--初始化Git仓库 git add <fils>--将文件添加到暂存区,可添加多个文件,空格隔开 git commit--提交到仓库 git status--查看工作区状 ...

  2. vim 加密(crypt)文本文档

    算法 vim7.3版本支持两种加密方式——PKzip算法(已知有缺陷的).Blowfish算法(从7.3版本开始支持).Blowfish2算法(从7.4.399版本开始支持)而vim -x 默认采用P ...

  3. ubuntu下编译小知识点

    #改变编译器选项 SET(CMAKE_C_COMPILER"g++") #出现如下错误:添加C++11特性 #error: #error This file requires co ...

  4. python 8

    一.文件操作初识 1. path 文件路径 F:\文件.txt encoding 编码方式 utf-8, gbk ... mode 操作方式 只读,只写,读写,写读,追加... f1 = open(r ...

  5. mac 常用技巧

    1.xcode-select --install 2.iterm2 https://www.cnblogs.com/xishuai/p/mac-iterm2.html 3.SUDO 免密码 visud ...

  6. Merging one UE4 project into another.

    Merging can be done by right clicking on folder in the content directory in the editor and selecting ...

  7. jquery考试成绩统计系统

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. ruoyi管理系统建立子项目,卡住

    这个一定不要勾选,不然依赖加了还是引用不到.

  9. TensorFlow机器学习实战指南之第一章

    TensorFlow基础 一.TensorFlow算法的一般流程 1.导入/生成样本数据集 2.转换和归一化数据:一般来讲,输入样本数据集并不符合TensorFlow期望的形状,所以需要转换数据格式以 ...

  10. 2018-2019-2 20175207 实验一《JAVA开发环境的熟悉》实验报告

    目录 使用JDK编译运行简单程序 使用IDEA对程序进行调试 实验练习 产生一个随机数,让用户猜测,猜错了告诉用户是大了还是小了. 并进行测试(正常情况,异常情况,边界情况) 实验总结 使用IDEA编 ...