千呼万唤始出来!微信小程序页面分享到朋友圈的功能,终于在安卓系统灰度测试了!目前只在安卓系统!只在安卓系统!只在安卓系统!iOS系统还没有办法体验。

首先,我们看一下官方文档的描述,解读一下小程序分享到朋友圈的实现步骤和条条框框;之后,我们用一个非常简单的代码例子来实现小程序分享到朋友圈的功能。

下面开始正题,官方文档的具体位置在这里:

小程序开发文档-开发指南-开放能力-分享到朋友圈(Beta)

文档中有说明:
从基础库 2.11.3 开始支持,此功能为beta版,暂仅在Android平台支持。

官方文档短短一页,说明了小程序分享到朋友圈的使用方法,对于我们开发者或者用户来说急需要了解的是怎么用,呈现的效果是怎样的。

先不着急上“码”,我先来归纳整理一下官方文档,让大家能有个清楚的认识:

1. 小程序页面分享到朋友圈的呈现效果

不像大家想象的那样,小程序分享到朋友圈的内容点击后可直达小程序。目前呈现的方式是用官方称作为“单页模式”的页面显示小程序页面的内容。

分享到朋友圈以后点击打开的页面布局

2. 什么是单页模式?

这个单页模式可就厉害了,有着一些约束要记好:

1)单页模式的布局

页面顶部固定有导航栏,标题显示为分享时设置的标题。底部固定有操作栏,点击操作栏的“前往小程序”才可以打开小程序的当前页面。顶部导航栏与底部操作栏均不支持自定义样式。

2)单页模式的限制

  • 页面无登录状态(云开发资源需开启未登录访问方可在单页模式下使用)
  • 不允许跳转到其它页面
  • 不允许横屏使用
  • 若页面包含 tabBar 或自定义 tabBar,tabBar 不会渲染
  • 本地存储与小程序普通模式不共用
  • 如果在单页里使用了禁用的组件或接口,在点击调用时,会弹 toast 提示“请前往小程序使用完整服务”。官方有对应的适配解决方案,请接着看。

3) 单页模式的页面适配

以下文字内容是官方文档的原文:

可通过判断场景值等于 1154 的方法来进行页面适配。另外,在单页模式下,可设置顶部导航栏与页面的相交状态,具体参考 navigationBarFit 配置。

还需留意的是,在单页模式下,wx.getSystemInfo 接口返回的 safeArea 为整个屏幕空间。

所以,在分享到朋友圈的小程序页面里面有交互的环节应该尽量考虑适配方法,免得影响用户体验。

3. 什么页面适用于分享到朋友圈?

像文章详情页、产品详情页等等这样的内容页面是非常适合分享到朋友圈的,官方文档也提到了:“分享朋友圈能力是为了满足纯内容场景的分享诉求”。

因此,在这个页面不可诱导或强制用户点击“打开小程序”,应在“单页模式”中尽可能呈现完整的内容。

4. 使用分享到朋友圈能力之前的关注点

  • 存在 web-view 组件的页面不支持发起分享。解读:想嵌入个html走天下的想法是不被允许的!
  • 不支持在小程序页面内直接发起分享。解读:通过设置open-type="share"是不可能的!
  • 不支持自定义页面路径。解读:分享哪个页面就是哪个页面,想改没门儿!
  • 支持打开开发版、体验版
  • 无权限人员进入时页面会提示无权限
  • 低版本微信客户端打开时,会进入一个升级提示页面

好了,说了这么多,接下来用一个简单得不能再简单的代码案例说明使用方法。各位看官,上“码”!

等等……出发前先读一下分享朋友圈的接口文档,具体官方文档位置:

小程序开发文档-框架-框架接口-页面-Page-onShareTimeline()

官方又说了,这玩意儿从基础库 2.11.3 开始支持,如果低于这个版本请做兼容处理。再次提醒,这是Beta版本,目前只在Andriod平台支持。该接口监听右上角菜单“分享到朋友圈”按钮的行为,并设置自定义分享内容。

onShareTimeline返回一个 Object,用于自定义分享内容,不支持自定义页面路径(没有path这个属性),返回如下三个字段:

1.字段:title

说明:自定义标题
默认值:当前小程序名称

2.字段:query

说明:虽然不支持自定义页面路径,但这个页面需要接收参数小程序是让你传进去的,这就可以统计到这个分享入口的量了
默认值:当前页面路径携带的参数

3.字段:imageUrl

说明:自定义图片路径,可以是本地文件或者网络图片。支持 PNG 及 JPG,显示图片长宽比是 1:1
默认值:默认使用小程序 Logo

接下来,我们启动微信开发者工具,新建一个小程序项目,在index.js里增加如下代码即可:

onShareAppMessage: function (res) {  if (res.from === 'button') {    // 来自页面内转发按钮    console.log(res.target)  }  return {    title: '自定义转发标题',    path: '/page/index/index'  }},onShareTimeline: function() {  return {    title: '自定义朋友圈分享',    query: '',    imageUrl: '图片的链接地址'  }}

有人问,只放置 onShareTimeline,不要 onShareAppMessage 行不行? 这个真不行,会导致右上角菜单中“发送给朋友”和“分享到朋友圈”都是灰色不可点击。

代码已到位,编译运行,看看效果吧~

这是没有加onShareTimeline时的右上角菜单

这是加上onShareTimeline监听后的效果,分享到朋友圈亮起来啦!

onShareTimeline设置的标题和图片起作用了!

分享出去了!测试嘛为了不惊动朋友圈,设置为私密啦呵呵

这是点击分享内容的单页,这就是神秘单页模式!没有登录信息哦,被禁用了。

你不信?!点一下“获取头像昵称”按钮试试,完全被禁用。

通过上面这组截图,大概的把小程序分享朋友圈功能演示了一下,更多的应用还需要结合产品的自身业务逻辑来合理使用。尽早做准备吧,各大厂商和平台已经纷纷宣布接入了小程序分享朋友圈的能力,下一个是不是你的应用呢!?

感谢您的耐心阅读,欢迎技术爱好者交流探讨。

plsql developer无监听程序_微信小程序支持分享到朋友圈啦!技术解读跟我来相关推荐

  1. js微信监听返回_微信小程序(2)- 框架结构amp;运行环境

    一.小程序框架结构 小程序框架分场景获取.逻辑层和视图层 场景获取:场景值是用来描述用户进入小程序的路径,可以在小程序的生命周期onLaunch 或 onShow 里获取.也可以通过wx.getLau ...

  2. 微信公众账号后台怎么解除小程序_微信小程序解除绑定 微信小程序怎么授权...

    该如何注销小程序? 微信小程序目前无法取消,也是微信小程序最脆弱.最无助的地方.如果你确定你不想要这个小程序,你可以转移和改变主题和其中的所有信息,这样你的小程序就会变成别人的小程序,与你无关.相当于 ...

  3. 简单分享怎么开发自己的微信小程序_微信小程序快速制作步骤

    小程序开发除了专业人士会自己开发之外,就是外包开发和模板搭建这两种方法. 外包小程序开发需要持续不断地与外包团队沟通,投入的精力也不少,总体价格不低,基本在万元左右, 最适合新手的还是小程序模板搭建啦 ...

  4. plsql developer无监听程序_腾讯开心鼠英语 小程序实践与总结

    腾讯开心鼠英语 团队中有很多小程序的项目,且后续还会很多小程序的开发和迭代规划,因此我们团队是小程序的重度使用者.在小程序的开发中,团队积累了一些技术和经验,也遇到了一些困难和挑战,还踩了很多坑,因此 ...

  5. 列表对象转数组 微信小程序_微信小程序——无限递归的层次列表

    --上礼拜踩的坑 1.关于为什么不直接操作DOM对象? 因为微信小程序里没有document对象. 2.为什么坑了这多时间? 因为之前看了个过期的帖子,完美避开了解决方案. 下面进入正文,需求是在微信 ...

  6. 取景框图片 小程序_微信小程序实现身份证取景框拍摄

    本文实例为大家分享了微信小程序实现身份证取景框拍摄的具体代码,供大家参考,具体内容如下 wxml wxss .camera_box { height: 100vh; width: 100vw; pos ...

  7. navtab触底 小程序_微信小程序TAB切换效果

    微信小程序tab切换效果 话不多说,先上效果图 主要是让在一个WXML上面显示2个页面,用来分页展示东西. 直接上代码了: 首先是wxml {{item}} A页 B页 然后是wxcss样式代码 .t ...

  8. JAVA制作弹出小广告的程序_微信小程序实现首页弹出广告

    本文实例为大家分享了微信小程序实现首页弹出广告的具体代码,供大家参考,具体内容如下 这个微信小程序首页广告demo 仅供有需要的参考 .wxml this is ad //事件 catchtouchm ...

  9. 微信公众账号后台怎么解除小程序_微信小程序 后台登录(非微信账号)实例详解...

    微信小程序 后台登录 实现效果图: 最近写了一个工具类的小程序,按需求要求不要微信提供的微信账号登录,需要调取后台登录接口来登录.由于小程序大部分都是调取微信信息登录,很少有调用自己后台来登录的,所以 ...

最新文章

  1. Ocelot + Consul实践
  2. Spring AOP 源码分析 - 筛选合适的通知器
  3. Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project 'drp2.8'. ja
  4. 计算机专业需要转正定级吗,全日制本科考进事业单位,没有取得初级资格职称,转正后能直接聘用为专业技术十二级岗位吗?...
  5. RocketMQ消费者是如何获取消息的?转疯了!
  6. 硬盘 光驱 跳线问题
  7. 【Android 应用开发】Activity 状态保存 OnSaveInstanceState參数解析
  8. Android类参考---Fragment(五)
  9. ubuntu 网络设置mark
  10. java找不到数据库的表_GreenDao:no such table 找不到表的终极解决方案!
  11. JAVA定时器ScheduledExecutorService中,scheduleAtFixedRate和scheduleWithFixedDelay的区别
  12. HDU1201 18岁生日【日期计算+水题】
  13. java实现simhash算法
  14. java blowfish ecb,node.js – 使用nodejs crypto和php的mcrypt解密blowfish-ecb
  15. python:np.vstack, np.hstack
  16. python解释器中help的用法
  17. link rel=canonical概念和用法(增加页面权重,利于排名)
  18. 《github精选系列》——非常有趣实用的python爬虫例子
  19. glibc升级导致系统段错误问题解决方案
  20. centos 安装flash插件

热门文章

  1. Vuex的第一次接触
  2. 前端图片canvas,file,blob,DataURL等格式转换
  3. css实现3D立方体旋转特效
  4. Python API简单验证
  5. WPF中通过AForge实现USB摄像头拍照
  6. 利用yum升级Centos6的gcc版本,使其支持C++11
  7. 浅谈算法和数据结构: 七 二叉查找树
  8. 伙伴分配器的一个极简实现
  9. 《Two Dozen Short Lessons in Haskell》(二十)分数
  10. java 二维数组奇数金字塔_二维数组:奇数阶魔方 | 新思维:C语言程序设计