前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >火了 超赞的功能!小程序开发内嵌web页面的功能,今天学习了吗

火了 超赞的功能!小程序开发内嵌web页面的功能,今天学习了吗

作者头像
企鹅号小编
发布2018-01-29 10:32:34
7750
发布2018-01-29 10:32:34
举报
文章被收录于专栏:微信小开发微信小开发

小程序开发内嵌web页面的功能,这个对于很多微信开发者都是个重大消息。

支持小程序内嵌网页,并且在内嵌网页中多次跳转,分享后,点开还是在跳转之后的网页。

首先,当然是参考微信小程序的api。

其实使用起来特别简单,只需在页面中放入这样一个标签即可,其中src一定是要在小程序管理中心配置过的。特别注意一下,web-view会占满整个页面,不管这个页面有什么其它的东西,都不会展示出来。

好了。有了这个可以开始进入需求实现的阶段了。对于分享功能,做过小程序开发的都不会陌生,在需要被分享的页面js中加入onShareAppMessage这样一个事件即可。

在 Page 中定义 onShareAppMessage 函数,设置该页面的转发信息。

只有定义了此事件处理函数,右上角菜单才会显示 “转发” 按钮

用户点击转发按钮的时候会调用

此事件需要 return 一个 Object,用于自定义转发内容

示例代码如下:

Page({

onShareAppMessage: function (res) {

if (res.from === 'button') { // 来自页面内转发按钮 console.log(res.target) }

return { title: '自定义转发标题', path: '/page/user?id=123',

success: function(res) { // 转发成功 },

fail: function(res) { // 转发失败 } } } })

但是存在web-view时,onShareAppMessage回调函数参数res中还会多一个webViewUrl

Page({ onShareAppMessage(options) { console.log(options.webViewUrl) } })

内嵌网页分享的功能就是实现出来了。

onShareAppMessage(options) {

var that = this

var return_url = options.webViewUrl

that.web_url = return_url // 转发成功

fail: function (res) { // 转发失败 } } },

需要实现内嵌网页内多次跳转分享的功能,这就需要自己想办法了。在小程序分享中又不能保持状态,这个得去记录分享时网页的路径。其实有点开发经验的都能想到这个办法,那就是使用?在url后记录下来,这样在其它用户打开转发小程序的时候,取出其中的参数,将web-view中的src替换成这个就行了。话不多说,直接上代码。

Page({

web_url:"",

data: { title: '测试内嵌分享', url:'', web_src:'' },

onShareAppMessage(options) {

var that = this

var return_url = options.webViewUrl

var path = '/page/test/test?return_url=' + encodeURIComponent(return_url)

console.log(path, options)

that.web_url = return_url // 转发成功

fail: function (res) { // 转发失败 } } },

onLoad: function () {

var pages=getCurrentPages();

var currentPage = pages[pages.length - 1];

this.setData({ web_src: web_src },

function () { }); } })

写到这里,终于大功告成了。

但是!!!

测试出问题了!!!分享后跳不到想要的页面!!!

终于找到了这个坑。

由于内嵌网页是单页面应用,在手机上测试的时候webViewUrl的获取每次都会出现问题,只有换成一般的多页面应用,这个问题才不会发现。

本文来自企鹅号 - 小客官媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 小客官媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档