- Mac小程序开发说明
Mac微信2.4.0以上版版本中,支持打开聊天中分享的小程序,开发者可下载安装Mac微信版内测版本进行体验和适配。 Mac微信内测版:点击下载 兼容性:系统要求macOS 10.12或更高版本 1、开发工具支持 运行环境要求下载并安装最新开发版开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html 小程序预览微信开发者工具菜单栏点击 设置->通用设置,在自动预览部分勾选“启动 MAC 端自动预览”。 使用自动预览功能,点击 预览->自动预览->编译并预览,成功的话将在微信MAC版上自动拉起小程序。 [图片] 小程序真机调试微信开发者工具菜单栏点击 设置->通用设置,在自动预览部分勾选“启动 MAC 端真机调试”。 使用真机调试功能,点击 真机调试->自动真机小时->编译并自动调试,成功的话将在微信MAC版上自动拉起小程序。 [图片] 2、开发者适配 SystemInfowx.getSystemInfo接口中返回的参数和手机返回的定义区别 [图片] 同时,Mac小程序还会根据屏幕的大小自动选择默认的窗口大小。提供的窗口大小从小到大依次为: [图片] web-view组件web-view组件中打开的域名请支持Mac浏览器的UserAgent。 支付小程序在使用wx.requestPayment时,将会拉起二维码让用户使用手机支付 3、常见问题 Q:小程序如何判断是Mac平台? A:通过 getSystemInfo 官方接口(platform 是 mac)/ 通过 UserAgent(Mac UserAgent 包含 MiniProgramEnv/Mac) Q:Mac小程序如何支持横屏? A:"resizable": true 可使小程序在PC上横屏窗口展示,体验可参考腾讯文档小程序。 Q:横屏模式下小程序默认的窗口大小为 A:webview 嵌入的页面在Mac上不能操作或者显示或操作异常? 检查一下页面是否没响应鼠标事件检查是否是UserAgent没有支持Q:页面布局为何出现错乱? A:检查一下是否使用屏幕尺寸来计算布局,Mac 上屏幕尺寸比窗口尺寸大,应该使用窗口尺寸来计算。 Q:为什么有的功能无法使用? A:Mac微信小程序暂不支持地图、蓝牙、卡包、以及硬件相关的功能。后续功能敬请期待。
2021-01-25 - 关于微信小程序内容安全要求规范
微信小程序的许多业务场景需要通过UGC(用户生产内容)的方式,实现更好的用户体验或更丰富的内容功能和服务场景。这类功能的使用如果没有做好对用户发布内容的安全审查,可能会产生政治有害等违法违规的内容。一旦被利用进行传播,对小程序用户带来有损的体验,小程序开发者也可能因此承担平台或法律的追责及处罚。 用户自定义发布的内容包括:昵称/花名、个人资料签名/日志/聊天/评论、头像/表情/相片、直播等各种场景。其格式内容包括但不限于短文本、长内容、图片或视频等。 [图片] 请提供用户自定义发布内容功能的小程序开发者,在相应的功能模块,接入微信公众平台内容安全API(imgSecCheck、msgSecCheck、mediaCheckAsync)能力,以及通过其他技术或人工审核手段做好内容审核,校验用户输入的文本/图片,拦截政治、色情、违法等敏感词,保证用户上传的内容安全健康。 对于UGC内容,开发者需履行主体责任,需要及时自查、严格做好内容审核措施。平台可能会在审核时通过敏感词测试进行内容安全能力检测。同时,小程序发布后,经用户使用出现UGC内容安全违规问题时,也将按平台规则进行处置。希望小程序做好内容安全工作,严格做好内容审查措施,共同守护平台良好生态。
2021-05-12 - getCurrentPages()的用法
getCurrentPages()的用法 getCurrentPages()是个好东西,今天来说说他的用法。 先看看官方文档: [路由 · 小程序]:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html [图片] getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。 简单说,就是可以获取到当前小程序的页面栈 那么,获取到页面栈,有什么用处呢? 1、判断页面栈是否超过10级,超过10级,将不能打开新页面(主要是不用用navigateTo方式打开)。 2、可以修改某个页面栈的data数据,或者方法。 这里给大家分享一个实际应用场景:仅发起者可分享。 有些投票、通知、抽奖、签到等,发起者会在私密的圈子内进行,比如,仅会员群才能参与的抽奖、公司内部的通知公告、班级内部的投票等。发起者是不希望别人分享出去,那么小程序里面要怎么做? 说到分享,在小程序内,应该是想到onShareAppMessage这个方法。只要page.js中有这个方法,不管你是否在内部写了代码逻辑,小程序默认就是可以分享的,如果没有这个方法,小程序右上角的“…”就不会出现“转发”的选项。 问题是,是否允许分享,一般都是小程序内的一个开关设置项,可以看下图: [图片] 用户在加载内容时,需要先从服务端获取到这个开关状态,再决定是否出现“转发”的选项。 此时,我们默认不给page添加onShareAppMessage方法,这样,你转发出去的小程序卡片,别人将无法通过长按进行分享(群聊无法长按分享,私聊还是个坑,看下图)。 [图片] [图片] 然后再动态设置当前page的onShareAppMessage方法,用this,或者getCurrentPages()都能解决,看下图: [图片] 目前私聊的卡片,长按依然可以转发,似乎不是很完美,但是,功能基本实现了。 如果想让私聊卡片的转发无效,你也可以变通一下,比如做个限群成员可见功能,即使私聊卡片被转发,可以判断小程序场景值,不展示内容即可~ 1、用wx.getLaunchOptionsSync() 获取小程序启动时的参数: [图片] 2、判断群聊和私聊的场景值: [图片] 3、如果是微信私聊中打开,给用户提示即可~ [图片] 欢迎各位一起讨论技术问题:mianhuabingbei
2019-02-20 - (10)群聊能力
我们在后台收到很多朋友的反馈,希望更好的运用小程序群聊的能力。于是我们想写写群聊的故事。 微信群是小程序在微信这个社交工具下传播的重要途径,我们经常能通过群聊看见小程序的身影。我们希望开发者在实现小程序逻辑的时候,能理解每一个群聊,可实现小程序与各个群聊紧密相关的功能。 基于此,我们开放了群聊 ID(openGID)的功能,供开发者区分标识每个群聊。对于每个群聊而言,小程序所获取到的 openGID 是不变的。但对于同一个群,不同的小程序内获得的 openGID 是不一样的。这一特性类似于标识用户身份的 openID。 拥有了群聊 ID,开发者可以把用户的操作按照群聊 ID 来聚合、沉淀信息,实现群协作功能。此外,通过 openID+openGID 的方式,还可以实现群排行的功能。 例如“群影”小程序以群聊ID聚合用户上传的图片,实现群相册的功能。 [图片] (“群影”小程序) 01 如何获取群聊ID 开发者获取 openGID 要依托于用户转发到群聊的小程序卡片,具体步骤如下: 1 设置带 shareTicket 的分享 在小程序内,开发者调用接口wx.updateShareMenu 带参数withShareTicket:true ,设置当前页面分享到群聊时能获取 openGID。而shareTicket本身就是获取 openGID 的凭证。 [图片] 而 iOS/Android App 分享场景当中,微信SDK也支持把所分享的消息设置成带 shareTicket。 值得注意的是,带 shareTicket 的分享卡片会被固定在某个群聊的,也就是说分享卡片会变成不能被长按转发。 2 由启动参数获取 shareTicket 当用户从某个带 shareTicket 的卡片进入小程序时,开发者可以在App.onLaunch 或者App.onShow 获取 shareTicket,而在小游戏上开发者可以通过监听 wx.onShow 或者同步调用wx.getLaunchOptionsSync 获取shareTicket。 shareTicket 实际上是小程序启动时临时生成的变量,在小程序生命周期内仅作为调用接口的凭证。生命周期结束后 shareTicket 就没有意义了。 3 通过 shareTicket 获取 openGID 开发者调 wx.getShareInfo 接口以 shareTicket 换取 openGID 的加密数据包,这是为了保证开发者服务器收到的 openGID 是可信的,开发者需要把加密数据交由后台解密,拿到真实的 openGID。数据加密机制更多请参看[数据加密相关文档]。 注意事项 ▷▷ 由于2018年7月5日起,新提交发布的小程序版本将无法通过用户分享获得群ID,即开发者通过wx.onShareAppMessage获取群 ID 的方式将不再支持,后续仅支持通过启动参数获取群 ID。请开发者及时调整。 02 群聊名称组件 除了群聊 ID 以外,开发者还能使用群聊对应的名称。出于保护用户隐私的考虑,我们不会把真实的群聊名称暴露给开发者,而是通过 open-data 组件让开发者在小程序前端展示某个 openGID 对应的群名称。 [图片] 其中 openGID 就是小程序获取到的群聊 ID。 open-data 组件只展示那些用户所在群聊ID对应的名称。如果设置了非微信提供的群聊 ID,将无法展现群聊名称。 03 群聊功能 1 分享设置 wx.updateShareMenu : [查看文档] 2 小程序启动参数 App.onLaunch / App.onShow : [查看文档] 3 小游戏启动参数 wx.onShow : [查看文档] getLaunchOptionsSync : [查看文档] 4 获取 openGID wx.getShareInfo : [查看文档] 5 群名称组件 open-data>/open-data>: [查看文档]
2018-08-17 - 2000万公众号运营者笑了,从此关联小程序再无授权!
似乎很少人发现,在刚刚过去的小假期之前,一个新能力在微信开发者社区突然被官宣了。 公众号关联小程序将无需小程序管理员确认,且小程序可被无限数量的公众号关联。 这是继小程序可无限制内嵌公众号后,公众号又一次「改革开放」,让小程序真正成为公众号的左膀右臂。正如微软小程序高级产品经理张鹏对我们说:“小程序应该要帮公众号的”,这次真的帮大了! 1 公众号关联小程序 不是公众号文章内嵌小程序 标题是不是像绕口令?之所以要重点强调,是因为很多人将这两者混为一谈。 比如,今天就有用户称:这个功能我已经用了好几个月,为什么现在才官宣呢? [图片] 乍一听吓一跳,微信竟然官宣个几个月前上线的功能?经过进一步了解,晓程序观察(yinghoo-tech)发现,原来这位用户是将公众号文章内嵌小程序跟公众号关联小程序,这两个不同的功能混淆了,闹了个大乌龙,真是啼笑皆非。 这也难怪,毕竟这两功能的关系过于密切。 实际上,前一项能力早就在今年2月份就已释放,当时我们判断,小程序与公号的连通性大大加强,因为在公号文章以及自定义菜单栏都可以自由插入小程序,不需要再关联。 [图片] 既然文章内嵌小程序无需关联小程序,乍一看,好像关联不关联都没那么重要了,为什么微信还要将关联授权给取消呢? 这是因为,公众号如果没有与小程序关联,在一些玩法中依然有很多痛点,就像是横亘在二者之间的一根“刺”。 以自定义菜单为例,如果小程序不关联公众号,运营者将无法在自定义菜单栏,设置小程序特定路径,只可以转跳到主页。 比如,某公号在菜单栏底部设置抽奖,用户进入公号点击底部栏进行抽奖时,跳转的将不是抽奖页面,而是抽奖小程序的主页,用户还需要继续查询才能找到该公号的抽奖活动。 以前为了解决这个问题,很多公号运营者不得不找到小程序开发者,索要页面路径,对于一些即时性很强的活动,就会大大影响活动进度。如果想用的小程序是个人类目,运营者很难联系上开发者,工作甚至就此卡住。 现在,微信终于将这颗刺给拔掉了! 此后公号运营者如需关联小程序,只需在后台「小程序管理」 - 「关联小程序」中输入小程序名称/APPID/账号原始ID,即可关联小程序。减少等待小程序管理员确认授权的时间,极大提高工作效率。 不过想要授权,有2个前提: 1、遵守公众号只能关联3个不同主体小程序,和10个同主体的小程序规则; 2、该小程序必须已设置无需关联确认。 [图片] 否则,你的公号将无法关联小程序。 2 小程序无限关联公号 是把“双刃剑”? 众所周知,微信公号是个待开采的流量池,而小程序就是负责开采的机器。两者相结合,公众号呈现内容,引流吸粉,再到小程序转化成交,已经成为创业者轻车熟路的方式。 而小程序关联公众号的大门,并非一开始就彻底敞开,而是遵循用户需求,一步一步地开放。 起初,小程序只能关联50个公众号;之后,该数字拓展到了500个。随着小程序的普及,不少开奖、打卡类工具类小程序备受公号运营者欢迎,此时,用张鹏的话来说,“500个依旧不够,小程序都要开启择优授权公号了”。 于是微信为了解决这一问题,放出一个大招,公众号文章可无限制内嵌小程序了!从那一刻开始,公号运营者如需在文章里内嵌小程序时,只需搜索小程序全称或AppID,就能将小程序内嵌其中。 但这种方式依旧有“限制”,最大的限制莫过于其大大增加了开发者之间的沟通成本。直到现在,微信团队彻底解放小程序关联公众号的“门禁”,小程序终于可以在公众号里随心所欲地穿梭。 不过,一片叫好的同时,不同的声音也不绝于耳。 “别人关联我的小程序,还不用经过我的同意,真的好吗?”某工具类小程序开发者对我们表示。 虽说小程序被更多人知道,被更多公众号关联使用,是一种荣幸。但同时,有开发者发现,不少三俗公号会在小程序里上传一些敏感信息,如果现在他们可以随意关联小程序,可以进行更多操作,这对于开发者而言,显然弊大于利。 据了解,提出“抗议”的开发者已经不少。他们认为,既然登录需要授权、调取信息需要授权,为什么现在关联小程序却不用确认授权了。他们拿出了公众号文章作为举例,“如果转发原创公号文章时,无需不授权也能转发,何谈尊重原创”。 所以我们看到,微信团队在发布这项功能的同时,也给了这类开发者“后路”。如果开发者希望小程序在被关联时保留管理员确认环节,可前往“小程序管理后台-设置-基本设置-关联公众号设置”修改设置项。 当然,辩论的圆桌上有正方就有反方,张鹏就是坚决拥护“无需授权是件好事”的代表:“从本质上说,小程序是一个发布出来的网页,公众号关联我认为确实不需要确认。至于三俗的内容应该由微信的内容审核机制来判断,而不是小程序运营者”。 正反两方辩论得难解难分,站在小程序运营者角度来看,你会怎么看?
2019-04-10