个人案例
- 社区每周|Mac小程序公测、模板消息调整、云开发等能力升级与社区每周反馈(12.30-01.03)
各位微信开发者: 以下是Mac 版小程序开发者公测、模板消息能力调整说明、云开发相关功能更新、“小程序助手”性能分析功能升级、商品数据接入(内测)及上周小程序相关能力更新及我们在社区收到的问题反馈、需求的处理进度,希望同大家一同打造小程序生态。 微信 Mac 版小程序开发者公测微信 Mac 版新版本中,支持打开聊天中分享的小程序,开发者可下载安装微信 Mac 版公测版本进行体验和适配。 最新版微信开发者工具新增支持在微信 Mac 版中预览小程序和进行真机调试,详情请查看《Mac小程序开发说明》。 微信 Mac 版公测版:点击下载微信开发者工具:点击下载 关于小程序模板消息能力调整说明原计划2020年1月10日下线小程序模板消息能力,由于部分开发者反馈尚未完全将模板消息切换为订阅消息,为降低业务影响,现做如下调整: 下调模板消息接口日调用额度,2020年1月10日起(含1月10日),未开通支付能力的帐号调至5万/日,已开通支付能力的帐号调至50万/日2020年1月10日24:00以后,新发布的小程序,只能使用订阅消息,在该时间点之前发布的小程序仍然可以使用模板消息。(回退的版本,按当前发布时间算)2020年4月10日24:00以后,所有版本的小程序都不能使用模板消息,请还未切换使用订阅消息的开发者,在此时间点前完成切换 周期性更新/数据预拉取支持从云开发环境中获取数据周期性更新能够在用户未打开小程序的情况下,也能从服务器提前拉取数据,当用户打开小程序时可以更快地渲染页面,减少用户等待时间,增强在弱网条件下的可用性。目前,系统已支持从云开发环境中获取数据,并将数据下载到本地。开发者可登录小程序 MP 管理后台,进入设置->开发设置->数据周期性更新中进行配置。详情功能介绍请参考文档《周期性更新》。 [图片] 同时,小程序·云开发还支持数据预拉取功能,详细功能介绍请参考文档《数据预拉取》 商品数据接入(内测)商品数据目前应用于微信扫一扫识物、小程序商品搜索和扫条码三个功能。这些功能可以很好的满足微信用户对商品的信息获取诉求,同时也能为商家小程序带来曝光流量和建立用户品牌认知的机会。 商品数据接入方式请阅读《商品数据接入文档(内测)》。 服务平台新增AI、安全、地图等多项能力服务平台新增AI人脸检测、信息安全检查、地理位置、音乐资源等多项接口能力,帮助小程序开发者降低开发门槛、快速接入服务。可点击前往了解能力详情 [图片] “小程序助手”性能分析功能升级为了帮助小程序开发者分析性能数据并优化小程序体验,“小程序助手”升级了性能分析功能,新增启动性能、运行性能和网络性能等方面的数据,支持开发者监控小程序的基本性能指标。 [图片] 扫描下方小程序码即可立即体验: [图片] 上周问题反馈和处理进度(12.30-01.03) 已修复的问题微信更新到7.0.10之后, 安卓 wx.hideLoading 失效的问题 查看详情 小程序不能发布的问题 查看详情 微信开放平台 第三方平台代公众号授权突发异常授权失败,返回 system_error的问题 查看详情 发送模板消息超出限制的问题 查看详情 页面未找到 4.4 根据 OpenID 列表群发卡券消息的问题 查看详情 微信公众平台重复提示登录超时的问题 查看详情 编译提示cloud init error: Error: errCode: -1的问题 查看详情 2020年第一个BUG,排行版BUG,显示0月的问题 查看详情 安全接口报错 VM22379:1 cloud init error: Error: errCode 的问题 查看详情 文章模块MD样式错乱、插入图片展示很小的问题 查看详情 下个基础库修复开发者工具地图 marker anchorX 报错的问题 查看详情 picker 未点击确认前 columnChange 不触发的问题 查看详情 修复中的问题今天的开发者工具有种sublime的感觉的问题 查看详情 社区小程序不能回答,且“写回答”三个字位置固定的问题 查看详情 开发工具RC V1.02.1912261 wx.showModal 在开发工具上单行显示的问题 查看详情 发送订阅消息报错的问题 查看详情 wx.navigateBackMiniProgram() 安卓无效的问题 查看详情 创建SocketTask连接,session过期并断网,重连后,框架自动关闭的问题 查看详情 input 密码类型与 text 类型的 input 框的问题 查看详情 微信浏览器 原生 select 标签 点击不唤起下拉框的问题 查看详情 "jsserverRoot": "jsserver/"无法上传 checkInteractive 的问题 查看详情 SocketTask.onMessage 出现以下报错的问题 查看详情 为什么OPPO 华为某些机型登录微信小游戏出现黑屏现象的问题 查看详情 textarea 组件在2.10.0出现不支持的情况,无法显示多行输入的问题 查看详情 wx.getLocation在微信开发者工具里面调用成功,但预览、真机测试调用的时候安卓返回fail 的问题 查看详情 所有安卓 version7.0.10 版本保存图报错的问题 查看详情 小游戏2.10.0 copyFile 接口的问题 查看详情 使用最新调试基础库2.10.0,地图Map组件加载报错的问题 查看详情 微信7.0.10版本部分机型 select 点不了的问题 查看详情 banner广告内存问题问题 查看详情 荣耀play 微信版本更新到7.0.10 发现下拉框无法选择 查看详情 虚拟支付midas.getBalance接口报错 查看详情 开发者工具基础库2.10.0版本地图markers,报错的问题 查看详情 小游戏编译的时候出现错误的问题 查看详情 layaair 网络加载资源的问题的问题 查看详情 需求反馈需求评估中微信开发者工具中公众号收藏的链接有一个备注的需求 查看详情 建议小程序加个配置文件,用户共享配置的需求 查看详情 蓝牙发送数据API增加参数的需求 查看详情 小程序公众平台-开发-错误查询结果里显示时分秒的需求 查看详情 微信团队 2020.01.10
2020-01-10 - 社区每周|重要运营公告、云开发支持数据库事务、社区成长中心与上周问题反馈(12.16-12.20)
各位微信开发者: 以下是春节期间审核调整通知、小程序基础库灰度、小程序内有偿投票违规行为公告、云开发支持数据库事务、订阅号相关功能回收通知、模板消息开发能力调整说明、社区成长中心公测及上周我们在社区收到的问题反馈、需求的处理进度,希望同大家一同打造小程序生态。 春节期间小程序/小游戏审核调整通知 小程序及小游戏代码审核将在2020年春节期间1月24日(除夕)至1月30日(初六)暂停审核 如开发者希望在春节前完成版本迭代,建议在2020年1月20日24点前提交小程序或小游戏代码审核。在此之前提交的小程序或小游戏代码审核单,审核团队将在春节停审前审核完毕。 1月31日恢复审核后,将按提审时间顺序逐步审核春节期间提审单。 小程序名称审核、类目审核、门店审核、迁移审核、认证审核、插件审核,以及小游戏创意鼓励计划审核、开通支付/广告主资质审核、订阅消息审核、运营素材审核、审核反馈等的暂停及恢复时间均与小程序代码审核同步进行。请开发者们合理安排提审时间,避免影响版本迭代。 微信开发者工具 1.02.1912261 RC 更新 本次更新包含内核更新等,nwjs 版本从 0.37.4 升级到 0.39.3,更多详情请见《微信开发者工具 1.02.1912261 RC 更新说明》。 小程序基础库 v2.10.0 (2019-12-25) 灰度 为了让大家开发的小程序更好的和基础库版本进行融合,微信团队邀请开发者进行基础库版本众测。目前已经向各位开发者的微信客户端灰度了最新版本的基础库,你现在可以提前体验并进行兼容,让用户更好地使用小程序。详情如下。 注:如果小程序内有基础库版本比较的逻辑,请务必留意在 v2.10.0 版本是否有异常,请参考《比较小程序基础库版本号的正确方法》 基础库版本:v2.10.0 (2019-12-25);客户端版本:iOS7.0.9及以上,Android7.0.9及以上;覆盖用户:全量的开发者,即在小程序后台绑定了开发者权限的用户。 已修复的问题: - 小游戏无法运行体验评分 - 跳转未下载分包页面转屏引起页面白屏 - openDataContext 配置为空字符串时,仍然初始化了 openDataContext - 统一插件支付功能页用户点击取消支付时的接口逻辑 查看详情 - Android 7.0.5 setTimeout 和 setInterval 接口传入第三个参数时会抛异常 - 华为mate机型,微信直播页底下输入框被遮挡或异常 - iOS input 同层下改变定位导致键盘收起 - iOS label 被 marker 遮挡 - cover-view coverViewScrollEvent 监听没有正常释放 - video全屏场景下会触发swiper页面错乱 - 安卓下在有 web-view 的页面中自定义 tabBar 渲染不出 查看详情 - 新版 Canvas 在 iOS 上无法加载图片 - 2.9.1 button嵌cover-view,cover-view点击无效 查看详情 - iOS input 组件在退到桌面回来时出现文字重叠 查看详情 - Camere onCameraFrame 在横屏状态下返回数据不正确 - picker-view组件picker-view-column数量变更时返回的数据的列数未变化 查看详情 - movable-view组件 - Bug 查看详情 - Android 下重复扫码 WebGL getContext 方法丢失 - 安卓下 map 组件的 polyline 会被底图覆盖 查看详情 - Android textarea 移动光标不应触发 input 事件 查看详情 - 不同 WebGL 上下文之间 WebGL 资源共享 - iOS下切换webview时,camera画面丢失 - canvas多次调用clip,iOS端渲染结果有误 查看详情 - canvas的restore会改动之前创建的路径位置 查看详情 - canvas 的变形操作在安卓和 iOS 表现不一致 查看详情 - iOS canvas 渐变字体设置失效 - camera的scan-area属性识别区域不准 - iOS下 textarea的padding无法置0 - iOS 下 showModal 超过一行就可以上下滚动 - iOS wx.downloadFile 没有回调 header 参数 查看详情 - 安卓 wx.scanCode datamatrix 类型二维码, 逗号后数据丢失 查看详情 灰度可能存在延迟,可通过 vConsole 查看确认自己是否已经命中灰度,如若未更新到,可尝试重启微信来强制触发更新。 体验过程中如遇到任何问题,请在本帖下方留言,提供以下信息以方便我们定位: 手机型号;手机操作系统;客户端版本号;必要时可提供代码片段。我们将尽快回复大家遇到的问题,感谢大家支持。 关于小程序内有偿投票违规行为公告 如小程序内存在《 关于小程序内有偿投票违规行为公告 》中说明的有偿投票内容,请开发者重视并及时整改。首次发现将限期3天整改,到期未整改将封禁“小程序支付”功能。 如已整改后续仍直接或间接再有类似行为的,将对小程序永久封禁处理。 若同一主体下多个帐号均存在类似违规行为的,将根据违规程度对该主体下所有小程序采取限制功能直至拒绝再向该主体提供任何注册或认证服务。 小程序·云开发支持数据库事务 为了方便开发者可以更加灵活地使用数据库能力,满足跨多个记录或跨多集合的原子操作的使用诉求,小程序·云开发新增数据库事务能力。数据库的事务能力保证了在对一个或多个集合进行的一组读写操作中,要么所有的操作都执行成功,要不都不执行,极大地方便了小程序的功能开发。 事务过程采用的是快照隔离,在快照隔离中会保证: (1)事务期间,读操作返回的是对象的快照,而非实际数据 (2)事务期间,写操作会改变快照,保证接下来的读的一致性。同时会给对象加上事务锁 (3)事务锁:如果对象上存在事务锁,那么其它事务的写入会直接失败。同时,普通的更新操作会被阻塞,直到事务锁释放或者超时 (4)事务提交后,操作完毕的快照会被原子性地写入数据库中 目前数据库事务仅支持云函数端使用,同时 wx-server-sdk 最低版本要求 1.7.0。详细功能介绍请参考文档 《数据库事务》 小程序模板消息开发能力调整说明 由于小程序模板消息能力将于2020年1月10日下线,请开发者尽快将模板消息切换为订阅消息,以免影响相关业务。近期,我们会继续对小程序模板消息接口的日调用量上限进行下调,计划如下: (1)2019年12月23日:下调至50% (2)2019年12月30日:下调至25% (3)2020年1月10日:小程序模板消息接口下线 关于模板能力调整详情请见 小程序模板消息能力调整通知 。 关于订阅号“直接群发卡劵”功能回收通知 为了优化订阅号用户的阅读体验,从2019年12月31日起,公众平台将回收订阅号“直接群发卡劵”的能力。 后续如需下发卡劵,你可以: 方法一:编辑图文时添加需要发放的卡劵 方法二:更改帐号类型为服务号,服务号保留“直接群发卡劵”的能力 微信开放社区成长中心,现正公测 为更好地鼓励社区突出贡献者、更客观地激励活跃用户,社区现正公测「成长中心」。在自己或他人的个人主页,均可以看到相应的成长等级情况。每一成长等级均对应相应的社区权益。 成长中心“贡献值”的计算规则近期仍将持续优化,具体数值可能会有所调整。2020年起,每月在成长中心获得最多贡献值增长的用户仍将获得“突出贡献者”称号,7级以上社区用户将获得“社区专家”荣誉。更多的社区权益也将陆续推出。 微信开放社区成长中心成长等级、贡献值、标识与等级权益等可能根据产品迭代发生变化。 上周问题反馈和处理进度(12.16-12.20) 已修复的问题 勾选编译时自动保存所有文件不起作用的问题 查看详情 小程序服务器域名修改后没有确认提交按钮的问题 查看详情 订阅消息申请模板入口没了的问题 查看详情 修复中的问题 更新后git拉取无法合并并报错的问题 查看详情 小程序客服小助手点击信息进入的是体验版的问题 查看详情 视频组件安卓手机点击播放按钮无反应的问题 查看详情 商户接口列表404的问题 查看详情 安卓上 wx.connectSocket 设置 tcpNoDelay 参数为 true 无效的问题 查看详情 安卓上建立第一次建立连接(https,websocket)会失败的问题 查看详情 与服务器 request 请求全部 IOERROR,同时返回 code-2 的问题 查看详情 大量用户反馈黑屏,请官方协同定位问题 查看详情 获取标签下粉丝列表,接口请求方式不正确的问题 查看详情 demo 在安卓机上黑屏不能正常显示;模拟器和 iOS 正常的问题 查看详情 wx.onKeyboardConfirm 在有些安卓机下不触发(比如OPPO A9, 1+5T)的问题 查看详情 使用 cocos creator 开发的,文本出现偶尔丢字或错字现象的问题 查看详情 安卓下 canvasGetImageData 获取的数据和原图不一致的问题 查看详情 关于 silder 拖拽超出 silder 组件范围,不会执行 bindchange 事件的问题 查看详情 小程序文档侧边栏显示的问题 查看详情 Canvas.createImage() 创建 Image 对象 onload 事件在安卓真机下只会触发一次的问题 查看详情 代码下移一行的快捷键标示错误的问题 查看详情 类型描述没有转义的问题 查看详情 更新日志里链接点击无效的问题 查看详情 需求反馈 需求评估中 iOS端 rich-text img 标签支持 webp 格式 加上 webp=true 的需求 查看详情 开发者工具支持左右分栏功能的需求 查看详情 建议 wx.openSetting 中增加关于订阅消息的回调参数 查看详情 slider 的 block-size 的相关需求 查看详情 页面分析统计建议 查看详情 live_pusher 增加一个 audio-reverb-type 属性的需求 查看详情 微信团队 2019.12.25
2019-12-26 - 微信开发者工具 1.02.1912261 RC 更新说明
下载地址 Windows 64 、 Windows 32 、 macOS 本次更新包含内核更新,nwjs 版本从 0.37.4 升级到 0.39.3 1. 编辑器优化 微信开发者工具的编辑器功能经过重新调整,优化并增加了若干功能。包括了: 1、新增大纲结构视图和文件的面包屑导航,同时编辑区域还支持分栏视图,方便开发者同时查看和编辑多个文件。 2、优化了文件搜索功能,支持更加精细化地搜索和替换功能,进一步提高了开发者的操作效率。 3、在编写 JS/TS 文件时,编辑器现在提供完整的项目代码补全和联想功能,使用 TS 的语言服务分析并提供代码错误及警告提示。 4、新版微信开发者工具编辑器兼容了部分 VS Code 扩展插件,目前正在功能完善阶段。开发者可根据需要安装对应插件。如需安装一个扩展插件,开发者可点击 [编辑] - [打开编辑器扩展目录],并将解包的插件文件夹放入此目录。同时,需要将此扩展 ID 增加到 [编辑] - [管理编辑器扩展...] 的数组里,重启项目即可使用。如需禁用此扩展插件,只需将其 ID 注释掉或者删掉即可;如需卸载此扩展插件,可以将其从扩展目录移除并重启项目。 [图片] 在使用扩展插件时请注意: 如果要安装的插件已在 VS Code 安装,可以在 用户目录/.vscode/extensions 下找到其已解包的扩展文件夹。扩展的 ID 可以在其文件夹内的 package.json 中找到,格式是 ${publisherName}.${name}。所做的操作将会使扩展将在所有的项目都同时启用或禁用。 某些类别的扩展不支持,例如 Terminal、Debug 类。 2. WXML 支持显示自定义组件数据及实时修改 wxml 面板中新增 ComponentData 页卡,可以查看当前选中的自定义组件节点的数据,同时支持直接修改并作用到渲染层中 [图片] 3. PC 微信调试 支持桌面版微信远程调试,可以在设置面板中自动真机调试选项中开启,目前仅 MAC 平台 2.4.0 及以上版本微信客户端支持该功能。 [图片] [图片] 4. 清除订阅消息授权数据 为方便开发者调试订阅消息相关功能,工具新增清除订阅消息授权数据的能力。开发者可通过点击清缓存->清理授权数据/全部清除清理工具及手机上的授权数据。 [图片] 5. 云控制台支持自定义告警 云开发新增自定义告警能力。开发者可以通过告警指标、统计周期、比较条件、持续周期和告警频率等参数的自由组合灵活地配置所需的告警规则。开发者可通过云开发->设置->告警设置->自定义告警体验功能。 [图片] 6. 云控制台高级操作支持数据聚合 云控制台高级操作新增支持数据库聚合操作支持,同时支持了多个新增的操作符,现已支持所有操作符和聚合 [图片] 7. 支持选择安卓设备上的 profile 文件进行分析 在安卓设备上开发者可以通过预览->右上角胶囊按钮->开发调试->Start CPUProfile 开始记录cpuprofile信息,通过预览->右上角胶囊按钮->开发调试->Stop CPUProfile 结束记录cuprofile信息 结束后,会自动生成一份cpuprofile文件到手机中。使用 USB 连接电脑, 在调试器里打开JavaScript Profiler面板,点击 load。选择通过电脑连接的Andriod设备上传。选择设备并选择对应的文件。进行查看 [图片] [图片] 8. <web-view /> 组件的调试入口变更 旧有的交互是在 <web-view /> 组件上的右键菜单,比较隐晦且难操作.本次更新,在有 <web-view /> 组件的页面的页面路径旁增加 "调试" 操作的交互入口 [图片] 9. 修复项目列表丢失问题及新增项目列表恢复指令 某些操作可能会导致出现工具丢失项目列表信息的情。针对这种情况,新版工具提供以下的解决方案: - 当项目列表信息被破坏导致读取失败时,工具将会自动尝试根据用户的本地应用数据去恢复项目列表信息,避免出现项目列表信息丢失的问题 - 对于之前出现项目列表信息丢失的用户,如果想要找回之前丢失的项目列表信息,可以通过在可以通过在调试器 console 中输入 restoreLocalData() 来手动恢复之前的项目列表 [图片] 10. 云控制台支持自定义数据库读写权限 云控制新增自定义前端数据库读写权限的能力。通过自定义规则,开发者可以精细化的控制集合中所有记录的读、写权限,系统会自动拒绝不符合安全规则的前端数据库请求,保障数据安全。开发者可通过云开发->数据库->权限设置体验功能。 [图片]
2019-12-26 - 插件引用wx.requestSubscribeMessage is not a function ?
在插件中引用语wx.requestSubscribeMessage时报如下的错误,请尽快解决。 thirdScriptError wx.requestSubscribeMessage is not a function;at api request success callback function TypeError: wx.requestSubscribeMessage is not a function [图片]
2019-10-23 - 小程序上Typescript啦
期待已久的 Typescript 为什么要用 Typescript 关于 Typescript,可以看看以前写过的这篇《关于Typescript》。文末的故事,便是大多数情况下 Typescript 能帮我们解决的痛点。 过了很久之后,想法还是一样:Typescript 这事情,当你管理大点的应用的时候,就会感受到它的好处了。尤其涉及团队配合的时候! 当然,如果你的项目比较小,或是写个小公(工)举(具)、小 demo 的时候, store 状态管理、typescript 编译这些,除非已经很熟悉、没有额外成本的时候,才勉强适合接入。离了具体场景谈架构,都是耍(xia)流(che)氓(dan)。 为什么要用 Typescript? 变量类型不明确 之前带外包写小程序,除了代码风格不一致之外,还遇到一个会变的变量问题。 [代码]let formGroups = this.currentStep.formGroups; // 猜猜我的 formGroups 是数组数组 [[], [], []],还是对象数组 [{}, {}, {}]? let flattenFields = _.flatten(formGroups); // 不用猜了,我用个 flatten 抹平,它就一定是对象 [{}, {}, {}] 了! flattenFields.forEach(item => { if (item.fields) { // 猜猜我的 item.fields 是数组还是对象? flattenFields.push(..._.values(item.fields)); // 不用猜了,我用个 values 抹平,它就一定是对象了! } }); [代码] 当我帮忙 debug 个问题的时候,打断点看到: [图片] [图片] 喵喵喵??? [代码]# 我和外包童鞋的对话: 我:话说你这些到底是什么类型,从命名和上下文都看不出来。。 我:得去翻更细的代码。。 外包童鞋:values好像可以改一下试试 我:是数组还是对象? 外包童鞋:有的是数组,有的是对象 外包童鞋:一般带复数的是数组 我:(刀.jpg) 我:卧槽 我:你这item.fields,有时候是数组,有时候是对象,这样真的好吗 我:大哥 我:(刀.jpg)* 2 [代码] 接口协议不符合 [代码]前端:帮忙看看这个接口为什么返回失败了? 后台:你这个接口字段少了啊,这个xxx (哼哧哼哧修改) 前端:帮忙看看这个接口为啥又报错了啊? 后台:你这个字段类型不对...我协议里有写的 前端:喔不好意思我改 (哼哧哼哧修改) 前端:(泪光)帮忙看看这个接口为啥还报错? 后台:...你这字段名拼错了啊!!!! [代码] 当然,这个案例里稍微夸张了一点,一般我们都会自己一个个对着协议检查哪里不对,但是很多时候被 bug 光环环绕的时候,你就是发现不了问题。 这个时候,我们就可以用 Typescript 来管理接口啦。 [代码]interface IDemoResponse { date: string; someNumber: number; otherThing: any; } [代码] 1. 使用约定的变量的时候,会有相关提示(请忽略我的强行any)。 [图片] 2. 使用约定以外的属性时候,会报错提示。 [图片] 除此以外,还有很多很棒的用法呢~ 一键调整协议 前端和后台协议约定后,就开始各自开发了。但是,我们总会遇到各种各样的问题,可能导致我们的协议变更。 字段的变更什么的最讨厌了,例如后台要把某个接口下[代码]date[代码]改成[代码]day[代码]。一般来说前端是拒绝的,你不能说让我改我就得改,我得看看我写了多少代码,评估下工作量。 什么,全局替换?你知道使用[代码]date[代码]多普遍吗?万一我替换错了咋办?? 这时候,如果你使用了 Typescript 并定义了协议接口的话,就很好办了~ 依然是这段代码: [代码]interface IDemoResponse { date: string; someNumber: number; otherThing: any; } const demoResponse: IDemoResponse = {} as any; const date = demoResponse.date; [代码] 1. 选中需要重命名的属性。 [图片] 2. 按下F2,重新输入属性名。 [图片] 3. 按下回车,使用到的地方都会更新。 [图片] 是不是很酷~~~ 跨过 Babel 直接使用 ES6/ES7,跨过 eslint 直接使用 prettier 其实小程序工具本身也支持了不少的 ES6 新语法,不过像[代码]async/await[代码]这种,则还是需要自己搞个 Babel 来编译。 现在直接上 Typescript,连 Babel 都可以直接跳过啦。 Prettier 这里重点推荐 prettier 神器,也是团队配合的好工具啊: 项目代码没有配 eslint?导致每次拉下来的代码一大堆冲突? 团队成员使用不同的编辑器?有的没有自动格式化?导致拉下来代码还是一堆冲突? 用 standard?有些规范和实际项目不符合,但是偏偏没得改?? 偷偷地往项目里装个 Prettier,然后所有的矛盾都不见啦。不管你的代码格式多独特,最终在 Git commit 的时候,就被同化啦,而且 Prettier 的格式化也不会影响到 Git 记录。 小程序与 Typescript Typescript 编译下就可以用? 其实小程序它最终运行的还是 Javascript,那不是我们直接自己编译下就好了吗? 少年你太天真了。咱们写 Typescript 最重要的是什么呀?是 Typing 库呀! [图片] 网上开源的关于小程序和 Typescript 的工具或者脚手架也一大堆,为啥不用呢?因为小程序的 API 在不断地变化呀~ 有了官方的支持,即使小程序的 API 变了,我们也可以及时地更新呀(奸笑)~ 开箱即用的尝鲜 既然官方提供支持了,义不容辞地使用呀! 1. 首先,我们更新到最近的工具版本,然后创建项目就能看到了: [图片] 2. 创建模版,我们来看看代码长什么样子。 [图片] 我们可以看到,在 package.json 里面多了俩脚本,其实也就是将 ts 文件原地编译,然后上传代码的时候忽略掉了。 3. 仔细瞧瞧代码。 [图片] 额,好像混入了一些奇怪的东西进去,感叹号是什么鬼??? 后面问了下开发GG,是因为这里比较特殊,目前定义的文件暂时没法兼顾,等后面的版本会兼容。 [图片] 终于用上 Typescript 啦,爽歪歪~ 调整下代码结构 小项目的话,其实也不用带什么编译啦。不过如果你还想用 less,也想用 typescript,还不想看到项目下面乱糟糟的文件: [代码]index.js index.ts index.json index.less index.wxss index.wxml [代码] 我们就简单弄个 gulp,把编译加上吧~ [图片] 然后我们再把 prettier 愉快地加上。这里就不多讲解啦,大家也可以参考我的 demo 项目: wxapp-typescript-demo 对了,目前官方的 typing 库也不是非常完善,如果需要写组件、插件、小游戏的你,可能会面临一大堆的 any 冲击波噢~ [图片] 参考 小程序工具更新 结束语 Typescript 的普及度其实不算高,小程序的确是又一次给到惊喜。反观下我们自己呢?有没有被业务代码冲得找不到方向呢? 很多时候,我们总爱说写业务没啥技术提升,但真的是这样吗?我看过很棒的业务代码,从框架设计到具体的实现,开发者都对自己做了很高的要求。而写技术需求代码的,就一定会写得很好吗? “我们是业务部门,技术肯定不能比” “随便找一些能用的就好了,不要浪费时间在这些上面” “能用就行了,不要在意这些细节” … 写代码是个思考的过程,要对自己有点追求。当然项目急的时候可以理解,事后一定要把欠下的债务给还了。(较真脸)
2019-02-20 - 社区每周 | 上周社区问题反馈以及功能优化更新(01.21-01.25)
各位微信开发者: 大家下午好。以下是上周我们在社区收到的问题反馈、需求的处理进度,希望同大家一同打造小程序生态。 上两周问题反馈和处理进度(01.21-01.25)修复中的问题微信7.0后之前发布的小程序首页分享功能失效的问题 查看反馈 live-player\live-pusher不能使用耳麦,而是扬声器播放的问题 查看反馈 iOS 出现 map 上的 cover-view 使用 opacity 无效的问题 查看反馈 安卓音频无法播放的问题 errCode:10001,errCode:62 查看反馈 小程序客服会话一直处于排队状态的问题 查看反馈 已修复的问题鉴权失败,请到腾讯地图地图官网申请开发密钥的问题 查看反馈 部分 Android7.0 用户 websocket 线上版本无法连接问题 查看反馈 退出小程序后音频继续播放的问题 查看反馈 微信7.0.3最新版 tabbar 不显示,文本框不能输入的问题 查看反馈 为该小程序点赞失败的问题 查看反馈 微信基础后台故障导致的问题 查看反馈 工具灰度发布引起的一些问题 查看反馈 在商户号向小程序发起了授权申请,但是没有确认按钮的问题 查看反馈 小程序的停留时长统计的问题 查看反馈 需求反馈跟进迭代中希望支持在管理页面回复反馈的需求 查看反馈 订单提醒、移动端商客聊天的需求 查看反馈 需求评估中开发者工具中能加个微信版本选择的需求 查看反馈 开发者工具添加 function 导航的需求 查看反馈 map 组件 markers 属性的 iconPath 支持云文件 ID 的需求 查看反馈 微信开发者·代码管理建议 查看反馈 云函数代码复用的需求 查看反馈 识别护照的 api 的需求 查看反馈 提供检测用户使用系统录屏状态的 API 的需求查看反馈 插件支持发送模板消息的需求 查看反馈 订单提醒、移动端商客聊天的需求 查看反馈 微信团队 2019.1.30
2019-01-30