微信开发者工具集成外部编辑器

2018-06-15 11:06:58 qinlulucsdn 阅读数 220

Q:1.5版本基础库的小程序出现了image bindload事件响应两次的问题。
A:你好,感谢反馈,我们会尽快进行修复,敬请关注。

Q:地图里marker的callout在android机型上变成一个黑色块。
A:你好,这是一个已知问题,安卓下默认背景为黑色,我们会在后续版本中进行修复,敬请关注。你可以先手动设置bgColor为白色。

Q:新版微信开发者工具,tabBar选中字体颜色不对。
A:收到,我们会在今天的更新中修复这个问题、

Q:swiper 第一张图片不显示。
A:你好,感谢反馈,我们正在定位问题,会在后续版本中进行修复,敬请关注。

Q:ios中下拉刷新会触发上拉加载,下拉刷新时加个状态值还是会触发。
A:你好,这是一个已知问题,页面太短的时候会导致下拉刷新时同时触发上拉加载,我们会在后续版本中进行改善,敬请关注。

Q:基础库版本1.5.0,调试时,当前页面的AppData错误,很多data为空,进入下一页面,前一页面的数据才有。
A:你好,这是一个已知问题,我们会尽快进行修复。

Q:IOS微信6.5.14版本toast和loading某些特定字数出现省略号。
A:你好,这是一个已知问题,我们会在后续版本中进行修复,敬请关注。

Q:微信更新到6.5.13后 小程序调用蓝牙接口报错 10011
A:10011是没有打开gps定位导致的。

Q:一个手机打开小程序无法搜索出另外在周围打开的蓝牙的手机,无论是安卓或者iOS,一直搜索不出来。
A:我们提供的是低功耗蓝牙接口,不支持经典蓝牙。

Q:小程序UI布局错乱。
A:你好,在新版本中我们已经尝试进行了修复,但是修改涉及代码编译过程。小程序可能需要重新发版后修复才能生效。

Q:新版SDK是不是更改了 binderror 触发的时机,记得之前 image 组件 src 属性值为空的 时候,不触发binderror,现在为空好像会触发binderror
A:你好,感谢反馈,预计1.5.3会修复。

微信小程序常见FAQ(17.8.14-17.8.20)

Q:直播小程序目前应选择什么服务类目?
A:你好,目前小程序平台已关闭直播类目,暂时无法支持直播类小程序接入。

Q:swiper点击指示点切换是需要自己实现吗?
A:你好,点击指示点切换的功能现已移除。因为手机上面较难点击指示点,容易误点。

Q:怎么在标题导航上添加点击事件?
A:你好,目前暂不支持此功能。

Q:三星手机上传的图片,被旋转了90°
A:你好,这是一个已知问题,我们会在后续版本中进行修复,敬请关注。

Q:wx.getUserInfo获取到encryptedData不能在小程序直接解密?
A:只能在服务端解密。

Q:小程序页面高度变大bug
A:已知,应该是偶现。目前也没有可以规避的方法。

Q:wx.getUserInfo 在获取用户授权的时候,关闭屏幕的bug
A:已知问题,在6.5.13带上了修复。

Q:action sheet 字体颜色设置无效。
A:你好 iOS 只允许设置某一项为红色,Android 不允许自定义颜色 。文档中没有说清楚,我们会进行补充。

微信小程序常见FAQ(17.8.7-17.8.13)

Q:测试帐号通道未开通,如何提交测试帐号?
A:建议将小程序的完整体验流程记录在网盘,然后将网盘链接和账号提供到版本描述中。

Q:onShareAppMessage,分享个人shareTickets问题
** 发现安卓分享个人和群聊都有shareTickets属性值,而IOS分享给个人没有该字段。**
A:只有转发到群聊中打开才可以获取到 shareTickets 返回值,单聊没有 shareTickets。之前由于实现问题安卓给个人会返回无效的ticket,请忽略。

Q:video在安卓和开发工具都能看 ios上面就不行?
A:请检查是否因为网站未备案,无法访问。

Q:为什么从分享到群里的卡片进入小程序,再点击导航栏的首页图标进入首页后,每次点击tabbar都会触发onLoad,正常情况不是点击tabbar后,再点击tabbar,是不触发onLoad的吗?
A:你好,感谢反馈,是我们的bug,会在后续版本中进行修复,敬请关注。

Q:wx.navigateTo在安卓手机上不显示返回。
A:你好,安卓系统上使用手机返回键返回,iOS上使用左上角返回按钮返回。针对不同平台用户的使用习惯差异我们会保留。

Q:小程序安卓版蓝牙发送数据后无法关闭连接。
A:安卓系统上存在允许应用对设备持有多份链接实例,因此 “closeBLEConnection接口并没有真正断开与蓝牙设备的连接” 的原因是之前对单个设备做了多次的 createBLEConnection 操作,请尽量保证 create 和 close 成对调用

Q:Page.prototype.setData 频繁。
A:你好,我们已经注意到这个问题,后续会对warning的时机进行优化。感谢反馈。

Q:wx.opensetting bug。res.authSetting 中不管设置什么,弹窗都是用户信息。
A:openSetting功能是调起客户端小程序设置界面,返回用户设置的操作结果,authSetting 不能赋值。

Q:蓝牙搜索得到相同的两个变量。
A:建议用deviceid做去重,iOS系统对于有自定义LocalName字段的设备,可能会上报两次 onDeviceFound

Q:textarea 显示严重bug 苹果设备显示问题。
A:你好,这是一个已知问题,iOS下textarea会有哦默认的内边距。我们会在后续版本中进行修复,敬请关注。

Q:点击小程序右上角的首页(房子)键整个微信闪退。
A:你好,这个问题是 6.5.12 iOS微信引入的问题,有两种解决方案
1、升级微信至 6.5.13
2、导致闪退的原因是在首页的onLoad或onShow上有执行页面跳转的函数(redirectTo、relaunch) ,尝试用 setTimeout 的方法延迟 200ms调用,可以避免这个问题。

Q:swiper里加了bindchange事件,有很多个swiper-item,连续快速切换swiper-item触发bindchange事件,小程序会出现一直无限触发bindchange事件。
A:请不要在change事件中使用setData改变current值。

Q:我的层级是这样:map里嵌套cover-view,cover-view中有一navigator,在电脑测试时跳转正常,但是移到真机上就没有任何反应。
A:你好,cover-view内只能使用cover-* 组件

Q:安卓wx.request导致request:fail:interrupted
A:你好,之前修复的时候漏了部分情况,会在下个安卓版本中解决。

Q:关于网络请求异步访问与 let 报错。
A:使用工具提供的ES6转ES5功能,否则旧版本的系统会不认识这些关键字的。网络请求目前没有同步版本。

微信小程序常见FAQ(17.7.31-17.8.6)

Q:小程序缓存机制是怎么样的?
A:小程序发版,客户端先用之前的包打开,异步更新好。下次重新打开才是用新包。7天之内不使用的小程序会被强制更新一次。

Q:setData方法是有react那样的虚拟dom优化吗?
A:有做虚拟DOM的优化,但设置相同数据还是会触发新渲染的。

Q:关于iOS分享之后的打开首页之后崩溃。
A:你好,已知问题,会在下个版本iOS微信中修复。在onShow或onLoad等中切换页面会导致此问题,目前可以尝试采用延时0.3秒以上进 行暂时规避。

Q:小程序支持FTP协议吗?
A:你好,目前不支持FTP。

Q:地图上设置Marker经纬度时使用的是哪种坐标系?
A:gcj02 火星坐标系。

Q:保存图片到手机saveImageToPhotosAlbum()错误。
A:你好,现在saveImageToPhotosAlbum还不支持保存代码包内的文件,我们会考虑在后续版本中增加支持。

Q:小程序发布后,是否可以回退到上一个版本。
A:你好,版本回退功能已发布,欢迎使用和反馈意见。

Q:什么时候小程序后台可以支持多人登陆?
A:已经开发中了,我们争取早日上线。

Q:winphone端的微信里面支持小程序吗?
A:不支持。

Q:image组件是延迟加载的吗?
A:目前不是,后续会支持lazyLoad功能。

Q:新版开发者工具,开发网页时,如何使用 ios 和 android调试呢?
A:目前不支持 iOS Android真机调试。后续支持。

微信小程序常见FAQ(17.7.24-17.7.30)

Q:置顶后,按HOME键,小程序真的能在后台获取位置信息并上传到服务器吗?
A:系统限制,微信切入后台后目前无法继续获取地理位置。

Q:tabBar是在app.josn中设置的,但是现在我打算加入多语言功能,希望tabBar中的text可以根据多语言设置自动切换为对应的语言文字。
A:你好,目前暂不支持此功能。有需求的话可以自己实现一个tabBar

Q:能否增加自动获取开发环境参数的接口。
** 1、代码能自动获取到appid;**
** 2、代码能自动获取到 开发版 体验版 对外发布版 等参数。**

A:你好,你的反馈我们已收到,我们会在后续的版本中考虑增加类似功能。

Q:encryptedData的意义?
A:1、unionid只有在某些情况下才可以在login阶段和openid一起获取
2、为了安全性。因为前端甚至整个微信都有可能被坏人劫持,坏人可能会传回来一个假的userInfo,但是encryptedData坏人是没办法造假的,因为用于加密和解密的sessionKey只在微信后端和开发者后端传递。所以encryptedData可以用于防止这种情况出现

Q:知乎可以获取微信号关联的手机号的问题。
A:1、小程序确实有部分接口,会邀请个别开发者参与早期测试,以帮助发现问题,逐步完善方案。
2、为方便调试和验证,我们一般会综合考量开发团队的技术实力和产品影响力,特别是与接口功能的契合度。这阶段参与者的数量不会很多,时间也会有不确定性。
3、待接口形态确定后,我们会第一时间制定开放规则,并在文档和公告中周知大家。故尚未看到该能力介绍的开发者,可以耐心等待官方文档的更新。

Q:wx.showToast中image使用gif不正常。
A:showToast 不支持使用gif

Q:一组list图片渲染,怎么去掉元素默认的间距?
A:设置 image的样式为display: block试试。

Q:小程序蓝牙是否还是只支持蓝牙4.0?
A:是的。

Q:onShareAppMessage转发title可以调字体吗?
A:你好,目前暂不支持此功能。

Q:能否在【自定义编译】对话框中加一个可以按钮,可以自动赋值当前场景、页面路径、页面参数呢?
A:已经在list中了,后续版本会添加这个功能。

**
微信小程序常见FAQ(17.7.17-17.7.23)

Q:小程序能否获取本机的蓝牙deviceId相关信息?
A:没有提供类似接口。
从系统能力来说,iOS系统没有提供获取本机蓝牙Mac地址的api,有个方法是可以让外设蓝牙设备来获取已连接的手机蓝牙Mac地址,但是目前 发现有些iOS手机重启后蓝牙Mac地址会改变。

Q:真机wx.captureScreen(OBJECT)截图后缀名为unknown,造成截图后无法保存。
A:你好,这是一个已知bug,我们会尽快进行修复。

Q:真机测试时总是弹出层弹出被Map遮挡。
A:map组件层级最高,目前的确会出现这种情况。后续版本中我们会考虑进行优化。

Q:开发者工具上的样式和真机测试的样式不一样?
A:渲染的问题需要开发者自行解决,工具无法保证三端渲染的统一
https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/details.html

Q:wx.getBackgroundAudioManager() onStop无效。
A:播放结束触发onEnded,手动stop才会触发onStop。

Q:检测picker组件兼容不支持
A:你好,感谢反馈,我们会尽快修复。

Q:picker-view开发者工具可以正常显示,但是真机下就无法显示。不知道是不是跟用了cover-view有关呢?
A:cover-view只能用在原生组件map、video、canvas内。

Q:用户打开小程序后再扫码进入获取不到二维码参数。
A:你好,这是一个已知bug,我们会尽快进行修复。

Q:文件下载 支持暂停继续下载吗?
A:目前不支持断点续传,后续会考虑增加。

Q:微信小程序 如何监听页面左侧的返回按钮?
A:你好,目前暂不支持此功能。

Q:cover-view不会浮在原生组件之上。
A:你好,这是一个已知bug,我们会尽快进行修复。

Q:调用wx.relaunch报错:fail can not invoke relaunch in background。
A:reLaunch 在小程序进入后台不能调用。

Q:小程序现在支持识别图中二维码么?
A:你好,目前暂不支持此功能。

Q:小程序转发怎么获取是转发到了群还是个人?
A:你好,目前暂时无法区分。

Q:playbackgroundaudio 组件,第一次扫码无法正常播放,第二次正常,我是摇动手机时触发,不是点击播放,如何处理?
A:你好,目前对播放功能有用户点击后才能播放的限制。后续版本中会考虑解除这个限制。

微信小程序常见FAQ(17.7.10-17.7.16)

Q:通过接口 https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN 生成的小程序码,用户微信扫描小程序码进入,IOS
** 系统每次扫码都能跳到页面并执行onload事件;安卓系统第一次微信扫描进入是正常的,第二次就不进入onload事件了,这个时候怎么获取参 数?**
A:你好,这是一个已知bug,我们会尽快进行修复。

Q:ios端bug:从分享进入,点击右上角Home键,crash问题。
A:你好,现有版本可以使用setTimeout暂缓redirectTo进行规避。下一版本会修复这个问题。

Q:微信公众平台->自定义菜单->跳转小程序->小程序路径部分可否传参数给小程序。
A:你好,可以的。

Q:微信开发者工具,7/11更新后代码不能自动换行了。
A:不好意思给你带来困扰了,这是 bug,我们后续会修复。

Q:7-11 编辑器更新后,编辑器调试 wx.getBLEDeviceCharacteristics 报错。
A:你好,这是一个已知bug,我们会尽快进行修复。

Q:开发者工具,基础库1.4.0,地图bindtap事件不生效,catchtap可以。
A:你好,这是一个已知bug,我们会尽快进行修复。

Q:新增 API setNavigationBarColor 只能修改首页标题栏颜色,其他页不生效。
A:你好。目前可以尝试setTimeout等进行延迟调用,或者删除掉app.json里面的相关配置。

Q:如何动态设置导航栏的背景颜色?
A:使用 setNavigationBarColor 。动态修改样式可以用setData修改style或class

Q:第三方平台能有权限修改 授权小程序的 “扫普通链接二维码打开小程序” 配置吗?
A:你好,目前不支持进行修改。

Q:蓝牙开启discover后会找到两个同样的设备,连续触发了两次wx.onBluetoothDeviceFound,信息是一样的,请问是bug吗?
A:存在部分设备在iOS上触发两次发现回调的情况,广播数据会有所不同,可以通过UUID判重来过滤这种情况。

Q:rich-text 组件 "’" is not supported.
A:目前暂时只支持 & > < " '
后续会根据反馈情况来支持更多转义字符。

Q:1.开启蓝牙扫描后,用户手动关闭iOS蓝牙,这时出发了wx.onBluetoothAdapterStateChange,里面discorvery=true。
** 2.还有,当discover开启/关闭,不会触发wx.onBluetoothAdapterStateChange回调吗?**
A:1.开启蓝牙扫描后,用户手动关闭iOS蓝牙,这时出发了wx.onBluetoothAdapterStateChange,里面discorvery=true。
这里存在蓝牙关闭时扫描状态没有及时更新的情况,下版本fix
2.还有,当discover开启/关闭,不会触发wx.onBluetoothAdapterStateChange回调吗?
可以通过startBluetoothDevicesDiscovery 和 stopBluetoothDevicesDiscovery的回调 来判定 ,下版本也会和安卓平台一起对齐,会触发回调。

Q:加入appid 返回baseresponse errorcode -14。
A:你好,这是个已知的bug,请退出开发工具重新登录。

Q:用wx.playBackgroundAudio后台音乐播放iphone异常。
A:你好,iOS的playBackgroundAudio存在bug,我们会在后续版本中修复。

微信小程序常见FAQ(17.7.3-17.7.9)

Q:请问如何设置我点击上一页,下一页的时候能出现的是顶部,而不是当前页的位置,就是我从哪里点击的新的一页就会显示当前的位置,怎么让 他回到顶部呢?
A:如果使用了scroll-view,可以使用scrollIntoView,或者scrollTop属性来设置
我们在即将发布的版本也会提供api,可以移动到页面的某一位置。

Q:订阅号里的开发管理页面在哪,上传的小程序版本找不到了呢?
A:小程序和订阅号归属于不同的账号下,两者虽有绑定关系,但是小程序的版本管理要使用小程序的账号登录后进行操作,不能在订阅号的管理页面中进行。

Q:小程序如何去掉顶部导航栏的返回按钮?
A:无法去掉。

Q:组件 border-radius 样式属性,编辑器内预览圆角正常,实机预览时没有圆角。
A:video组件是native组件,仅支持有限的样式设置。组件在开发工具和手机上的底层实现有所差别,表现上有细微差异,最终效果请以手机展现为准。

Q:当input和fixed固定的布局重合的时候,input的提示语可以看见,点击固定布局上的按钮时,也能触发input,在手机上,对固定布局使用z-index,结果也一样。
A:input组件未被激活时可以被z-index覆盖。textarea是native组件,在z轴层级最高,不能覆盖。

Q:Android6.0无法注册notify=true的BLECharacter
A:这里有个bug,忽略这个错误继续尝试下后续步骤看看。

Q:三星S7使用调用蓝牙接口10008错误。
A:已知bug,会在后续版本中进行修复。目前请尝试忽略该错误继续进行后续步骤。当前版本中虽然会报错,但是notify已成功,不影响后续数据传输功能。

Q:当我请求接口,状态为403时,wx.request的fail回调没有触发。
A:4xx、5xx 等 response 的异常状态不会进入fail回调,请在success回调中检查statusCode。fail回调一般源于在url格式、参数类型检查、网络连接、域名解析、response编码问题等

Q:安卓手机升起键盘会后,小程序标题栏会消失。
A:6.5.10已修复。

Q:小程序转发回到主页按钮怎么设置?
A:你好,目前不支持对该按钮进行设置。

Q:wxml中如何输入尖括号?
A:你好,下一版本中text标签会增加对html转义字符支持,请关注小程序更新。

Q:使用 json 生成多个 movable-view, delete 某一个 json 元素后,导致这一个 json 元素后的 movable-view 定位出现问题。
A:你好,这种情况是因为你没有在wx:for的节点中指定wx:key。请尝试一下指定有效的wx:key。

Q:小程序支持多语言国际化吗?
A:你好,目前尚未添加对国际化的支持。

微信小程序常见FAQ(17.6.26-17.7.2)

Q:tab大小不生效,明明设置了4,格式化的为2?
A:谢谢你的反馈,我们下版本会修复。

Q:微信小程序button能否以图片为背景?
A:可以使用label绑定button组件进行样式的修改。

Q:小程序获取微信用户头像url 不是https。
A:这个问题已经在list中了,会尽快解决。
开发者可以先直接替换连接中http => https 来完成功能先。

Q:js 里不支持直接写根路径(根目录)么?
A:你好,暂时不支持绝对路径的引用。
这个需求已记录。谢谢反馈。

Q:在使用 playBackgroundAudio 播放音频时,音频请求的时间越长,会导致 setData 后页面 render 的卡顿越明显。
A:已知问题,下个正式版本会修复。

Q:canvas中ctx.arc()方法中的前两个参数如何加'rpx'单位?
A:可以自行将px转成rpx
1px = 750 / screenWidth rpx

Q:调用腾讯云的小程序会话管理服务login接口,一直提示“鉴权服务调用失败:#1007 - $WEIXIN_RETURN_ERR”,请问怎么回事?
A:这个是腾讯后端返回的错误结果,腾讯云后端应该有在解决
应该是express_in这个参数引起的。

Q:一个AppId能同时上线多个小程序么?
A:不能,只能上线一个小程序。

Q:picker时间粒度为year,选择后点确定,微信直接崩溃。
A:这是客户端上的问题,已经修复,需要等待客户端更新。

微信小程序常见FAQ(17.6.19-17.6.25)

Q:wx.getLocation拒绝授权后,如何重新开启询问是否授权?
A:使用wx.openSetting 引导用户重新打开授权。

Q:wx.navigateTo 无法跳转某个页面?跳转search 页面无效,且跳转其他页面也没有问题, 将页面改成其他字母就行,例如searcher?这是bug吗??
A:请调用api的fail回调。

Q:小程序navigator的url里面能引入第三方链接吗?
A:不能。

Q:getUserInfo获取的用户信息不会更新么?
A:延时是4小时。

Q:wx.startRecord 录音成功后,能否返回录音的时长和音频文件大小?
A:下个版本会更新录音的API会提供文件信息。

Q:没有网络的环境下就不让用开发者工具?
A:目前没有网络是无法使用小程序开发者工具的
因为项目属性和大部分开放的api都是需要做网络获取数据的。

微信小程序常见FAQ(17.6.12-17.6.18)

Q:scroll-view 标签 设置 scroll-y="true"时,bindtouchmove="touchMove", 上下滑动时 不执行 touchMove 方法。
A:感谢反馈。请考虑将touch事件绑定放到scroll-view内部。

Q:页面多个textarea时部分组件随机性地不显示文本的bug。
A:你描述的情况应该是 textarea设置了autoheight,并且内容超过了屏幕长度,因为Android上textarea的滚动事件没处理好,无法滚动使超出屏幕的内容可见,会在近期的版本修复。

Q:wx.navigateTo提示没有权限,无法跳转,之前ok的代码突然报错。
A:开发者工具服务有抖动,部分小程序会获取不到接口权限。
目前已经修复,感谢反馈。

Q:downloadFile和openDocument能否支持data url?
A:目前是不支持的。

微信小程序常见FAQ(17.6.5-17.6.11)

Q:请问小程序与开放平台Oatuth接口能共用吗?
A:不能,小程序没有oauth接口。

Q:在加载完成小程序之后,小程序能否完全不使用外网而在局域网中访问内网链接?
A:小程序不关心域名是局域网内还是局域网外的,只要这个域名是安全域名 而且你的设备能访问到即可。

Q:app.js 里的 wx.redirectTo 有时不执行
A:在移动设备上,在app.js中调用 wx.redirectTo 是有可能失败的。
建议目前不要在app.js中执行相关的方法。

Q:bug ide 新建page 自动app.json添加的行是绝对路径 会编译错误 还要手工去掉斜杠。
A:收到谢谢,下个版本会修复这个问题。

Q:小程序可使用手机NFC功能吗?
A:目前还没有 NFC 相关的规划。
后续看需求情况,决定是否增加。

Q:iphone 点击右上角分享按钮后,任意操作都会造成微信闪退。
A:iOS8有这个问题,下个版本会解决。

Q:小程序无法实现录音的同时播放伴奏?
A:目前不支持,后续版本支持。

Q:scroll-view能否增加列表重用机制解决列表很多时崩溃现象?
A:已经有计划。

Q:小程序的数据分析只能管理员才能看吗?
A:小程序后台目前仅管理员扫码登录,后续会支持其他角色登录查看数据;
小程序数据助手支持管理员或管理员授权的其他微信用户查看数据。可以支持你的需求。
具体参见:https://mp.weixin.qq.com/debug/wxadoc/analysis/assistant/

Q:附近的小程序,门店一定是是资质注册地吗?不能是经营地?
A:如果经营地址与资质注册地不一致,请提供小程序注册主体资质以及异地经营的说明材料(如租赁合同)。多个门店需要选择相关主体,并提供不同门店位置的说明材料(资质)以及相关关系说明,适用于连锁公司。

Q:企业申请小程序账号,小程序的服务类目可以超出企业营业执照上写的经营范围吗?
A:小程序的服务类目和营业资质的营业范围无关,如果是选择涉及资质的类目,只要可以提供相关资质就可以了。

微信小程序常见FAQ(17.5.29-17.6.4)

Q:app.json 文件删除一行之后关闭,就会显示为空白文档。
A:谢谢反馈,这是 bug,下版本会修复。

Q:预览前上传扫二维码之后提交提示"未为绑定为第三方平台的开发小程序"?
A:请确认 tabbar 的icon的大小是不是超过 40kb了。

Q:prepay_id 发送模板消息提示 invalid form id hint
A:如果你是支付场景,一定要用手机小程序支付,才有效的,开放工具上扫码支付是无效的。

Q:开发者工具0.17.172600,使用Page的新建功能,会出现如下提示,检查app.json发现生成的目录为:"/pages/logs/index",正确的应该是"pages/logs/index"。
A:收到 下个版本会修复这个问题。

Q:系统错误,错误代码:-80063,错误信息:undefined,
A:是因为tabbar的 icon 大小超过了40kb导致,
下个版本工具会给出友好的提示。

Q:开发者工具建议加上CTRL+TAB 快捷键切换文件修改。
A:收到建议 下个版本会加上该功能。

Q:您好,可以开通获取手机通讯录的API吗?
A:目前不支持获取手机通讯录。

Q:小程序需要用到openid,但是用的时间太长了,最长时间用了近20秒……
A:1.我们监控没有查到改接口获取数据缓慢
2.请不要再客户端调用api.weixin.qq.com相关的API , 这个接口应该是在服务端来调用的。

微信小程序常见FAQ(17.5.22-17.5.28)

Q:如何在事件中取消对Slider的滑动修改?
A:感谢反馈。对于小程序的所有组件,因为事件回调是异步执行的,所以做不到“取消变更”之类的行为。你可以在bindchange中将非法值设为合法值,这样来实现你的需求。

Q:getBackgroundAudioManager onEnded没反应?
A:所有 onXXX 接口都是接收一个 Function 类型的参数 callback,在事件发生时会调用 callback:
backgroundAudioManager.onEnded = (function(){
// 这里处理 onEnded
})

Q:我用npm install 下载的第三方库文件夹中不能再小程序开发工具中显示,什么原因?
A:小程序不支持直接引入node_modules 所以编辑器中不会显示这个目录
同时这个目录中的文件也不会被编译到小程序的代码包中。

Q:downloadFile的文件大小能否设置?
A:这个是无法设置的。

Q:最新的开发工具找不到“移动调试”?
A:目前不支持移动调试的功能。

Q:小程序如何检查GPS是否开启?如何调转到GPS设置页?
A:目前不支持检查和跳转到GPS设置页。

Q:wx.uploadFile,fail返回500已配置uploadFile合法域名。
A:500是服务器错误,
请查服务器原因。

Q:微信小程序加载信息超时 (-1,-1,-1)怎么解决?
A:这个是android手机客户端的一个bug 目前正在修复中。

Q:在开发者工具从首页进内页左上角有返回按钮,真机测试却直接是关闭按钮。
A:android 的有物理返回键。

Q:涉及社交,通不过审核。
A:你好,该小程序建群、发布任务,回复等内容有明显的社交属性,需选择社交类目。

微信小程序常见FAQ(17.5.15-17.5.21)

Q:对WXML进行格式化代码时遇到小于号会出现格式错误。
A:谢谢你的反馈,我们后续会修复这个问题。

Q:为什么wx.getShareInfo(OBJECT)无法获取群名称?
A:群名的开放涉及到隐私问题,推出之后受到了质疑。
所以我们对小程序群相关能力进行调整,开发者可先使用wx.getShareInfo接口中的群ID进行功能开发。

Q:input调用系统身份证号码键盘时,在iOS与Android下键盘X键表现不一致,iOS下X返回大写字母,Android下X返回小写字母。
A:已知问题。已发版本修复了。

Q:wx.uploadFile上传视频报错415是什么错误?
A:415 是你服务器的网络错误码。

Q:wx.chooseLocation()安卓无法获取第一个默认选中的地址?
A:谢谢你的反馈,我们后续会修复。

Q:小程序可以用安卓的api来自动调整手机屏幕的亮度吗?
A:即将开放相应的api。

Q:服务站点大于10个以上,怎么解决附近的小程序?
A:http://kf.qq.com/faq/170401MbUnim17040122m2qY.html,请查看文档。

微信小程序常见FAQ(17.5.8-17.5.14)

**Q:小程序发布新版本,老用户本地缓存会被清理掉? **
A:不会被清理掉。

Q:公众号绑定小程序后,小程序能否跳转到公众号其中的一个页面?
A:暂时不支持。

Q:刚更新了0.17.170800 mac. 现在预览项目时,如果勾选上‘开启代码压缩上传’. 部分页面会出现样式错误. 关闭就好了.
** 是因为新增的‘wxss文件代码压缩功能’ bug吗?**
A:这是一个bug
我们尽快修复,
原因是因为压缩 wxss 文件导致 @import 进来的文件丢失了。

Q:模拟鼠标消失?
A:这是显卡问题。
如有需要,请打开控制面板->鼠标->指针与轨迹
开启鼠标轨迹,就可以显示了。

Q:即使给组件设置了hover="false",与此同时另外设置了hover-class时,false是不生效的,正确的不应该是false时,hover-class不生效么?
A:抱歉,确认了下 hover 这个属性已废弃,文档未更新。
请使用hover-class="none" 来取消点击态。

Q:checkbox事件后仍有可能触发handleSwiper?
A:是的。这是因为JS运行于一个独立线程。从在JS中使用setData设置current值,到current值被应用到swiper,会有一小段时差。这段时间内,swiper仍可能触发change事件。

Q:刷新和地址栏下拉都没效果呢刷新和地址栏下拉都没效果呢刷新和地址栏下拉都没效果呢。
A:这是一个bug,下个版本修复。

Q:新建的模块,js模板的方法都重复。
A:谢谢你的反馈,这是已知 bug,我们下版本会修正。

Q:个别安卓真机利用wx.getSystemInfo获取不到SDKVersion。
A:当前 Android 客户端存在一个 bug,确实有概率出现微信是新版,但是基础库版本较旧,下个线上版本会修复这个问题。在此之前确实只能通过重装微信解决。

Q:点击pdf进行下载,但是提示的是 downloadFile:fail wxceed max file size .
wx.downloadFile 限制的文件大小是多少呢?
A:10M

Q:小程序是否能支持iFrame嵌套?
A:不支持。

Q:ble 启动notify错误代码10007是什么错误?
A:10007 property not support 当前特征值不支持此操作。

微信小程序常见FAQ(17.5.1-17.5.7)

Q:既然每个页都有一些基础固定的文件和格式,开发者工具如果提供一个命令行,可以一键快捷建页工具就好了,例如命令行下输入 wx page pagename1 或者集成到开发者工具 新建选项里。
A:谢谢反馈,下个版本会加上的。

Q:调试工具和手机调用getSystemInfo获取的screenHeight不一样。
A:这是一个没有对齐的bug
下个版本工具会解决。

Q:微信开发者工具有没有意向添加分栏编辑功能,像其他编辑器那样可以同时显示编辑两个文件?
A:收到建议 后续会添加这个功能。

Q:安卓微信内测版6.5.8,wx.reLaunch 可返回,无法继续点击,报错。
A:已知问题,近期版本会修复。

Q:场景值在开发者工具和手机上获取的类型不同。
A:谢谢反馈 下个版本会修复。

Q:微信小程序 无法获取response header
A:下个版本开始会支持。

Q:多名开发者开发一个微信小程序如何如何实现代码共享。
A:请使用svn 或者 git 等代码管理工具。

Q:应该添加一个保存全部页面的快捷键。
A:下个版本会支持保存全部文件。

Q:为什么图片只在本地调试的时候显示,手机预览和发布后 图片都不显示了?
A:假如是背景图片的话,是因为不能使用本地路径;
假如不是背景图片的话,可能跟你设置了反盗链有关系;

Q:form表单提交后怎样清空数据?
A:用两个按钮,或者将表单数据绑定到this.data中,通过清空data的数据来达到清空表单的目的。

Q:小程序服务器是否会存储小程序应用的数据?
A:是不会储存的。

微信小程序常见FAQ(17.4.24-17.4.30)

Q:小程序与小程序之间可不可跳转?
A:暂时不支持。

Q:图片服务器需要对小程序的refer放开限制,这是什么意思?
A:有些服务器为了防盗链会去检查请求的 referer。
小程序的 referer 是 https://servicewechat.com
所以需要服务器放过这个 referer

Q:模板消息 form input的value值color 真机测试不起作用。
A:在 input 是 disabled 的情况下 color 在客户端是不会生效的,会被默认配置所覆盖,但这个可以通过通过设置 -webkit-text-fill-color 来解决,如下:
-webkit-text-fill-color: red;

Q:小程序开发版本能正常访问网络,但是体验版本,则不能访问网络请求。
A:一般可能是如下情况:
a:域名不是HTTPS
b:域名带有端口
c:域名没有备案
d:域名https有问题
e:公众后台没有配置相应域名
f:TLS版本不足1.2

Q:安卓机中使用wx.relaunch跳转界面后,依然可以按系统自带的返回键返回到上一页。
(如果按照relaunch关闭所有页面的逻辑,此时应该是不能返回的,而是直接退出小程序才合理)
** 返回到上一页、再次调用relaunch,会报错 navigateBack with an unexist webviewId**
A:非常感谢,你的反馈已记录,之后会修复。

Q:怎么修改右上角的分享按钮的内容?
A:暂时还不支持。

Q:不能接入新浪云吗?applinzi.com 和 xxx.applinzi.com都不行,因为违规被禁止设置,这个要怎么办?
A:请在微信客户端打开该域名进行申述。

微信小程序常见FAQ

Q:是否支持视频直播或音频直播,如HLS?
A:我们正在技术上正不断完善,很快将提供支持。

Q:能否从小程序中打开普通的网页链接 ,比如我要链到我们的客服页面?
A:暂时不支持。

Q:没收到内测邀请,能给我们发个邀请码吗?
A:小程序很快将开放申请,请留意官方公告。

Q:请问下小程序有计划支持二维码扫描吗?迫切需要这一功能,希望能尽快提供接口支持,谢谢
A:暂时不支持,后续会逐步完善。

Q:开发工具不支持linux环境以及windows 2003或XP系统吗?
A:是的,目前不支持

Q:请问微信小程序的组件中有没有多行文本的组件?
A:6.3.30 已支持 textarea 组件。

Q:getUserInfo接口获取不到unionid该怎么办?
A:需要到open.weixin.qq.com网站上,绑定小程序和你的其他公众号或app,才会返回unionid。

Q:安装了小程序调试工具(wechat_web_devtools_0.9.092300_x64.exe)后,把原来的开发者调试工具覆盖了?没法做到两个工具兼容?直接覆盖?
A:请升级到最新的开发者工具版本,已经兼容普通网页调试和小程序调试。

Q:我在wxss文件里编写css3动画,点击编译直接就报错了,编译不通过。
A:Css3 的更多特性,我们正在陆续支持中。目前部分功能支持不足,如animation动画。

Q:小程序路由/info?appId=1,通过wb.navigateTo 跳转页面后。如何在新的页面中拿到appId的值?我看文档中没有描述。
A:可以通过 Page 的 onLoad 事件拿到,可以参考navigator组件

Q:微信小程序支持和硬件的交互吗? 比如和硬件通过蓝牙或者wifi的方式进行数据通信?
A:我们正在规划中,目前暂不支持

Q:wx.setStorage(OBJECT) 小程序存储的容量有多大限制?
A:目前每个小程序限制5M

Q:目前提供的canvas绘图接口,我们发现不能跟网页原生api兼容,所以也就无法使用现有的绘图库了是吗?
A:是的。

Q:在微信小程序的canvas相关api中,发现缺少将canvas转换成图片的相关api接口。如drawImage系列接口。
A:6.3.30 已支持 wx.canvasToTemFilePath 用于将 canvas 转成图片临时文件路径。

Q:下载下来的zip文件如何解压缩,是否有相关api?
A:目前暂不支持,我们将很快提供。

Q:我想问一下,在小程序里面怎么进行组件化开发?我在文档中看到了template,但是个人来看只能绑定数据。如果我想绑定事件,类似component该怎么办?还是在小程序里有其他办法实现组件化?
A:目前暂不支持,我们很快将提供自定义组件。

Q:最近在看微信的小程序开发,有个顶部tab需求,查看文档没有发现此组件,看到设计规范上有,请问在哪里可以看到。
A:6.3.30 已支持在 tabBar 设置 position 参数。

Q:请问微信公众号开发功能除了调用微信提供的API之外,可以调用自己写的api接口或者服务吗?
A:可以使用request接口请求自己的服务器api。

Q:您好,在小程序的api 中是否有获取图片原始宽高的接口?具体需求场景:在canvas 中实现对wx.chooseImage后的图片进行一定比例的放缩功能。
A:6.3.30 已支持,image 组件的 bindload 事件可以返回图片的原始宽高。

Q:开发者工具如何录音,录音完成是什么格式呢?
A:暂不支持模拟录音,手机上录音目前是silk格式。

Q:请问小程序能引用外部的图表库吗,比如ECharts?
A:暂不支持。

Q:WXML中"Mustache"语法(双大括号)来绑定数据,
例如:
** ****{{**

message }}

Page({
data: {
message: "Hello MINA!"
}
})
** 如果message是一段HTML文本,能不能绑定?应该怎么绑定?**
A:目前不支持绑定HTML代码。

Q:代码里面可以用一些工具库吗?比如像 lodash这种工具库,我觉得可以用的话是比较方便的,比如可以通过 npm install 这种方式来安装第三方的工具库。
A:目前暂不支持。

Q:小程序开发时能否使用我们自定义的字体图标。A:自定义字体是支持的,但是需要使用线上字体,并且存放字体的服务器需要允许跨域。

Q:在小程序中如何将富文本内容显示出来,我已经在小程序中加入了div和样式做了测试发现样式都无效?
A:目前暂不支持。

Q:小程序是否开放用户手机通讯录的读取/写入权限?
A:目前暂不支持

Q:好像无法通过js获取图片宽和高,请问有解决方案吗?
A:目前只能显示设置图片宽高

Q:iPad好像无法预览小程序?
A:目前暂不支持iPad。

Q:微信小程序有拨打电话和发送email的方法吗?
A:可以拨打电话,暂不支持发送email

Q:我在一台机器上同时开发微信小程序和服务器程序,请问微信小程序在开发时怎么访问我本机的服务器呢?用localhost还是开发机器的IP地址?
A:目前服务器必须使用域名,不支持本地调试。

Q:我在文档中,没看到如何修改右上角三个点操作区按钮的方法。
A:这里不支持自定义,统一显示官方按钮。

Q:我这在布局的时候用到了rpx单位,在安卓手机(小米4)下真机预览的时候750rpx并显示全屏,经过测试发现在安卓手机(小米4)下850rpx 才能显示全屏; 但文档里面写道:规定屏幕宽为750rpx;是不是意味着开发者需要适配不一样的手机(不一样的手机设置不一样的rpx值)?
A:我们会持续优化rpx,兼容大部分主流机型。不需要开发者做适配。

Q:文章中的image,如果想单击后浏览图片,可以放大缩小之类,有没有相关接口?
A:可以使用图片预览接口。

Q:我在使用贵方提供的canvas组件时,并没有找到一个可以保存画布信息的接口。
A:暂不支持,我们会很快支持。

Q:滚动页面,滚动到底部,加载新的内容不能实现。
A:6.3.30 已支持页面配置 onReachBottom 事件。

Q:如果是支付给子商户,调用接口跟之前web开发的用法是一样的还是怎么做?
A:目前暂不支持支付给子商户。

Q:请问小程序里支持把文字、图片、链接转发到IM给好友、朋友圈吗,API文档里没写。
A:分享能力会很快提供,请留意官方文档。

Q:请问微信小应用除了自带的api接口, 是否支持其他的外部api或js插件的加载?
A:目前暂不支持。

Q:我调用小程序的微信支付api,一直报签名验证错误,参与签名的参数有timeStamp、nonceStr、package、signType。使用微信支付签名校验工具生成的签名跟我自己服务器生成的签名是一样的,但还是报签名错误。
A:appId不需要传入支付api,但是需要参与签名。

Q:想请教checkbox是否只能通过checkbox-group绑定事件。
A:heckbox不会触发change事件, checkbox-group才会触发。

Q:我们在微信开发工具,选择图片后,尝试上传或下载图片 都没有任何反应,请问是什么原因?
A:最新版本的开发工具已经支持 uploadFile 和 downloadFile 的调试。

2018-07-06 13:28:35 weixin_33965305 阅读数 1349

概览

为了帮助开发者简单和高效地开发和调试微信小程序,我们在原有的公众号网页调试工具的基础上,推出了全新的微信开发者工具,集成了公众号网页调试和小程序调试两种开发模式。

使用公众号网页调试,开发者可以调试微信网页授权和微信JS-SDK详情

使用小程序调试,开发者可以完成小程序的API和页面的开发调试、代码查看和编辑、小程序预览和发布等功能

为了更好的开发体验,我们从视觉、交互、性能等方面对开发者工具进行升级,推出了1.0.0版本
1
在原有功能的基础上,新增了两个开发辅助功能:

使用腾讯云,快速搭建小程序后台运行环境

申请测试报告,了解小程序在真实的移动设备上运行性能和运行效果。
1
1
注意:因为申请测试会占用测试机器资源,所以一个 APPID 一天只能申请一次测试报告。

界面

启动页

登陆页

在登录页,可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程序的开发和调试。
1

模式选择

开发者工具提供两种开发模式的选择。

公众号网页调试。选择公众号网页调试,将直接进入公众号网页项目调试界面,在地址栏输入 URL,即可调试该网页的微信授权以及微信 JS-SDK 功能

小程序调试。选择小程序调试,将进入小程序本地项目管理页,可以新建、删除本地的项目,或者选择进入已存在的本地项目。
1

新建项目

当符合以下条件时,可以在本地创建一个小程序项目

需要一个小程序的 AppID;如没有 AppID,可以选择申请使用测试号

登录的微信号需要是该AppID 的开发者

需要选择一个空目录,或者选择的非空目录下存在 app.json 或者 project.config.json。当选择空目录时,可以选择是否在该目录下生成一个简单的项目
1

多开项目

工具支持同时打开多个项目,每次打开项目时会从新窗口打开,入口有以下几种:

从项目选择页打开项目,处于项目窗口时可以从菜单栏的项目 -> 查看所有项目打开项目选择页

从菜单栏的最近打开项目列表中打开的项目会从新窗口打开

新建项目

命令行或 HTTP 调用工具打开项目

管理项目

对本地项目进行删除和批量删除
1

主界面

开发者工具主界面,从上到下,从左到右,分别为:菜单栏、工具栏、模拟器、编辑器、调试器 五大部分
1

菜单栏

微信web开发者工具

切换账号:快速切换登录用户

关于:关于开发者工具

检查更新:检查版本更新

开发者论坛:前往开发者论坛

开发者文档:前往开发者文档

调试:调试开发者工具、调试编辑器;如果遇到疑似开发者工具或者编辑器的 bug,可以打开调试工具查看是否有出错日志,欢迎在论坛上反馈相关问题

更换开发模式:快速切换公众号网页调试和小程序调试

退出:退出开发者工具

项目

新建项目:快速新建项目

打开最近:可以查看最近打开的项目列表,并选择是否进入对应项目

查看所有项目:新窗口打开启动页的项目列表页

关闭当前项目:关闭当前项目,回到启动页的项目列表页

文件

新建文件

保存

保存所有

关闭文件

编辑:可以查看编辑相关的操作和快捷键
工具

编译:编译当前小程序项目

刷新:与编译的功能一致,由于历史原因保留对应的快捷键 ctrl(⌘) + R

编译配置:可以选择普通编译或自定义编译条件

前后台切换:模拟客户端小程序进入后台运行和返回前台的操作

清除缓存:清除文件缓存、数据缓存、以及授权数据

界面:控制主界面窗口模块的显示与隐藏

设置

外观设置:控制编辑器的配色主题、字体、字号、行距

编辑设置:控制文件保存的行为,编辑器的表现

代理设置:选择直连网络、系统代理和手动设置代理

通知设置:设置是否接受某种类型的通知

工具栏

点击用户头像可以打开个人中心,在这里可以便捷的切换用户和查看开发者工具收到的消息
1
用户头像右侧是控制主界面模块显示/隐藏的按钮。至少需要有一个模块显示
1
工具栏中间,可以选择普通编译,也可以新建并选择自定义条件进行编译和预览。

通过切后台按钮,可以模拟小程序进入后台的情况
1
工具栏上提供了清缓存的快速入口。可以便捷的清除工具上的文件缓存、数据缓存、还有后台的授权数据,方便开发者调试。

工具栏右侧是开发辅助功能的区域,在这里可以上传代码、申请测试、上传腾讯云、查看项目信息
1

工具栏管理

在工具栏上点击鼠标右键,可以打开工具栏管理
1

模拟器

模拟器可以模拟小程序在微信客户端的表现。小程序的代码通过编译后可以在模拟器上直接运行。

开发者可以选择不同的设备,也可以添加自定义设备来调试小程序在不同尺寸机型上的适配问题。1
在模拟器底部的状态栏,可以直观地看到当前运行小程序的场景值,页面路径及页面参数

独立窗口

点击 模拟器/调试器 右上角的按钮可以使用独立窗口显示 模拟器/调试器1
1

设置页

外观设置、编辑设置、代理设置和通知配置。菜单栏上点击设置,或者使用快捷键 ctrl(⌘) + , 可以打开设置页。

外观设置

编辑器支持配置外观和代码编辑器习惯和风格。

主题:深色、浅色 字体 字号 行距
1

编辑设置

修改文件时自动保存 编译时自动保存所有文件 文件保存时自动编译小程序 自动折行 用空格代替Tab 代码缩略图 总是在新标签页打开文件 Git 比较文件内容时,忽略 Windows风格回车符

Tab大小

如果选中了 “总是在新标签页打开文件”,则在编辑器目录树点击文件时,总是会在一个新标签页中打开此文件,而非在临时标签页中打开。
1

代理设置

可以配置不使用代理,或使用系统代理,或使用自定义代理。
1

通知设置

可以设置是否接收系统消息、开发者社区消息、监控报警消息。
1

项目页卡

项目页卡主要有三大功能

显示当前项目细节

包括图标、AppID、第三方平台名(只有第三方平台的开发小程序才会显示)、目录信息、上次提交代码的时间以及代码包大小。

基础库版本切换

开发者可以在此选择任意基础库版本,用于开发和调试旧版本兼容问题。
1

项目设置

微信小程序运行在三端:iOS、Android 和 用于调试的开发者工具;三端的脚本执行环境以及用于渲染非原生组件的环境是各不相同的:

在 iOS 上,小程序 javascript代码是运行在JavaScriptCore中,是由WKWebView 来渲染的,环境有iOS8、iOS9、iOS10

在 Android 上,小程序的javascript代码是通过X5 JSCore来解析,是由 X5 基于Mobile Chrome 53/57内核来渲染的

在开发工具上,小程序的javascript代码是运行在nwjs中,是由Chrome Webview来渲染的

尽管三端的环境是十分相似的,但是还是有些许区别:

ES6 语法支持不一致

wxss 渲染表现不一致。尽管可以通过开启样式补全来规避大部分的问题 ,还是建议开发者需要在 iOS 和 Android 上分别检查小程序的真实表现。

ES6 转 ES5

在 0.10.101000 以及之后版本的开发工具中,会默认使用 babel 将开发者 ES6 语法代码转换为三端都能很好支持的 ES5 的代码,帮助开发者解决环境不同所带来的开发问题

需要注意的是:为了提高代码质量,在开启 ES6 转换功能的情况下,默认启用 javasctipt 严格模式

样式补全

开启此选项,开发工具会自动检测并补全缺失样式,保证在低版本系统上的正常显示。尽管可以规避大部分的问题 ,还是建议开发者需要在 iOS 和 Android 上分别检查小程序的真实表现。

压缩代码

开启此选项,开发工具在上传代码时候将会帮助开发者压缩 javascript 代码,减小代码包体积

不校验请求域名及 TLS 版本

正式发布的小程序的网络请求是需要校验合法域名以及域名的 TLS 版本,可以在 mp 管理后台进行配置。 在开发过程中可以开启此选项,开发工具将不会校验安全域名以及TLS 版本,帮助在开发过程中更方便的完成调试工作。
1

启用多核心编译

在四核及以上的电脑上此选项可见。启用此选项,会充分利用 CPU 资源来编译项目的 JS 代码,提高编译的效率。可以选择关闭此选项

域名信息

将显示小程序的安全域名信息,合法域名可在mp管理后台进行设置。
1

腾讯云状态

使用腾讯云功能,可以在这里看到腾讯云状态、开发环境信息和域名信息。1

快捷键

1
1
1

代码编辑

编辑区可以对当前项目进行代码编写和文件的添加、删除以及重命名等基本操作

文件格式

因iOS下仅支持 UTF8 编码格式,最新版本的开发者工具会在上传代码时候对代码文件做一次编码格式校验。

文件支持

工具目前提供了 5 种文件的编辑:wxml、wxss、js、json、wxs 以及图片文件的预览。

文件操作

新建页面有两种方式

在目录树上右键,选择新建 Page,将自动生成页面所需要的 wxml、wxss、js、json

在 app.json 的 pages 字段,添加需要新建的页面的路径,将会自动生成该页面所需要的文件

自动保存

编辑代码后,工具会自动帮助用户保存当前的代码编辑状态,直接关闭工具或者切换到别的项目,并不会丢失已经编辑的文件状态,但需要注意的是,只有用户主动保存文件,修改内容才会真实的写到硬盘上。

如果设置中开启了 “修改文件时自动保存”(设置-编辑设置-修改文件自动保存),工具在修改文件时会自动保存到硬盘中,无需手动保存的效果。

设置中开启 “编译时自动保存所有文件”(设置-编译设置-编译时自动保存所有文件),在点击编译时自动保存所有文件的效果。

实时预览

如果设置中开启了 “文件保存时自动编译小程序”(设置-编辑设置-保存时自动编译小程序),那么当 wxml、wxss、js、json 文件修改时,可以通过模拟器实时预览编辑的情况:

注意:如果同时开启了 ”修改文件时自动保存“ 的设置,编译动作会有一定的延迟,来避免频繁的编译,手动点击编译按钮将立即编译。

自动补全

同大部分编辑器一样,工具提供了较为完善的自动补全

js 文件编辑会帮助开发补全所有的 API 及相关的注释解释,并提供代码模板支持

wxml 文件编辑会帮助开发者直接写出相关的标签和标签中的属性

json 文件编辑会帮助开发者补全相关的配置,并给出实时的提示

js 补全1
代码模板支持1
json 补全1
wxml 补全1

Git 状态展示

如果所在的小程序工程目录(project.config.json 所在目录)存在 Git 仓库,编辑器可以展示目前的 Git 状态。

目录树

如图所示,当某些文件存在变动时,目录树的文件右侧将展示相应的图标来表明这一状态。当某一处于收起状态的目录下存在有变动的文件时,此目录的右侧亦会展示一个圆点图标表明此情况。

文件图标状态的含义如下:1

图标 含义
U 文件未追踪(Untracked)
A 新文件(Added, Staged)
M 文件有修改(Modified)
+M 文件有修改(Modified, Staged)
C 文件有冲突(Conflict)
D 文件被删除(Deleted)

文件夹目录图标状态的含义如下:

图标 含义
小红点 目录下至少存在一个删除状态的文件
小橙点 目录下至少存在一个冲突状态的文件
小蓝点 目录下至少存在一个未追踪状态的文件
小绿点 目录下至少存在一个修改状态的文件

如果某一文件存在修改(Modified),可以右键点击此文件,并选择 “与上一版本比较”,则可以查看当前工作区文件与 HEAD 版本的比较。11

文件编辑

存在Git仓库时,状态栏会展示此Git仓库目前的分支信息。例如,下图表明目前Git仓库处于v2分支。1
同时,编辑文件内容时,将会在所编辑代码左侧实时显示相对于上一版本内容的比较1
样式说明如下:

文件夹目录图标状态的含义如下:

样式 含义
蓝色线条 此处的代码有变动
绿色线条 此处的代码是新增的
红色三角箭头 此处有代码被删除

Windows 风格回车设置

如需忽略 Windows 风格的回车符,可以前往 “设置” - “编辑”,并勾选 “Git 比较文件内容时,忽略 Windows 风格回车符”。勾选后,在编辑文件进行内容比较时,所有 Windows 风格的回车符将被当作 Unix 风格的回车符对待。

项目配置文件

可以在项目根目录使用 project.config.json 文件对项目进行配置。

字段名 类型 说明
miniprogramRoot Path String 指定小程序源码的目录(需为相对路径)
qcloudRoot Path String 指定腾讯云项目的目录(需为相对路径)
pluginRoot Path String 指定插件项目的目录(需为相对路径)
compileType String 编译类型
setting Object 项目设置
libVersion String 基础库版本
appid String 项目的 appid,只在新建项目时读取
projectname String 项目名字,只在新建项目时读取
packOptions Object 打包配置选项
scripts Object 自定义预处理

compileType 有效值

名字 说明
miniprogram 当前为普通小程序项目
plugin 当前为小程序插件项目

setting 中可以指定以下设置

字段名 类型 说明
es6 Boolean 是否启用 es6 转 es5
postcss Boolean 上传代码时样式是否自动补全
minified Boolean 上传代码时是否自动压缩
urlCheck Boolean 是否检查安全域名和 TLS 版本

scripts 中指定自定义预处理的命令

名字 说明
beforeCompile 编译前预处理命令
beforePreview 预览前预处理命令
beforeUpload 上传前预处理命令

packOptions

packOptions 用以配置项目在打包过程中的选项。打包是预览 、上传时对项目进行的必须步骤。

目前可以指定 packOptions.ignore 字段,用以配置打包时对符合指定规则的文件或文件夹进行忽略,以跳过打包的过程,这些文件或文件夹将不会出现在预览或上传的结果内。

packOptions.ignore 为一对象数组,对象元素类型如下:

字段名 类型 说明
value string 路径或取值
type string 类型

其中,type 可以取的值为 folder、file、suffix、prefix,分别对应文件夹、文件、后缀、前缀。示例配置如下。

{
  "packOptions": {
    "ignore": [{
      "type": "file",
      "value": "test/test.js"
    }, {
      "type": "folder",
      "value": "test"
    }, {
      "type": "suffix",
      "value": ".webp"
    }, {
      "type": "prefix",
      "value": "test-"
    }]
  }
}

注: value 字段的值不支持通配符、正则表达式。若表示文件或文件夹路径,以小程序目录 (miniprogramRoot) 为根目录。

项目配置示例:

{
  "miniprogramRoot": "./src",
  "qcloudRoot": "./svr",
  "setting": {
    "postcss": true,
    "es6": true,
    "minified": true,
    "urlCheck": false
  },
  "packOptions": {}
}

小程序调试

程序调试主要有三大功能区:模拟器、调试工具和小程序操作区

模拟器

模拟器模拟微信小程序在客户端真实的逻辑表现,对于绝大部分的 API 均能够在模拟器上呈现出正确的状态。1

自定义编译

点击工具栏中的编译按钮或者使用快捷键 Ctrl(⌘) + B,可以编译当前代码,并自动刷新模拟器。

同时为了帮助开发者调试从不同场景值进入具体的页面,开发者可以添加或选择已有的自定义编译条件进行编译和代码预览(如图)。

注:编译条件跟项目相关,每个项目可以保存自己相关的编译条件1

编译异常信息

在预览或上传的过程中,可能会出现编译异常信息。1
忽略上传的文件:在项目文件夹下,某些文件可能不是小程序运行所需的,例如 readme 文档、.gitignore 文件等。为了优化大小,在预览和上传的过程中,这些文件将不会被打包。

体积过大的文件:如果勾选了 ES6 转 ES5 或代码压缩的选项,为了优化编译速度,对于某些体积很大的 JS 文件,工具会跳过对这些文件的处理。

自定义预处理

1
在项目设置页卡,我们提供了以下几个默认的预处理,可以解决大部分的代码文件预处理的问题

ES6 转 ES5(可以应用于编译、预览、上传),使用 "babel-core": "^6.26.0"

上传代码时样式自动补全,使用 "postcss": "^6.0.1"

上传代码时自动压缩,使用 "uglify-js": "3.0.27"

对于高级开发者来说,完全可以自己编写自动化构建脚本对代码文件进行预处理,所以我们提供了 启用自定义处理命令 选项 开发者可以指定 编译前/预览前/上传前 需要预处理的命令 开发者工具使用 shell 的方式运行指定的命令,并在控制台中输出命令的执行日志

预处理命令的执行顺序

自定义预处理命令 --- 默认预处理命令 --- 编译/预览/上传

注:编译前预处理命令,需要手动点击 "编译" 按钮,或者使用快捷键编译才能触发。文件修改无法触发该命令。

Mac 版本的开发者工具无法复用 bash 中的 Path 环境变量。可能需要手动设置系统的 Path 环境变量,才能正常执行命令。

前后台切换

工具栏中前后台切换帮助开发者模拟一些客户端的环境操作。例如当用户从小程序中回到聊天窗口,会触发一个小程序被设置为后台的回调。1

调试工具

调试工具分为 7 大功能模块:Wxml、Console、Sources、Network、Appdata、Storage、Sensor、Trace

Wxml panel

Wxml panel 用于帮助开发者开发 wxml 转化后的界面。在这里可以看到真实的页面结构以及结构对应的 wxss 属性,同时可以通过修改对应 wxss 属性,在模拟器中实时看到修改的情况(仅为实时预览,无法保存到文件)。通过调试模块左上角的选择器,还可以快速定位页面中组件对应的 wxml 代码。1

Sources panel

Sources panel 用于显示当前项目的脚本文件,同浏览器开发不同,微信小程序框架会对脚本文件进行编译的工作,所以在 Sources panel 中开发者看到的文件是经过处理之后的脚本文件,开发者的代码都会被包裹在 define 函数中,并且对于 Page 代码,在尾部会有 require 的主动调用。1
注:当代码运行到断点的时候,整个小程序都停止了,所以模拟器会出现白屏或者无法操作的情况

AppData panel

AppData panel 用于显示当前项目运行时小程序 AppData 具体数据,实时地反映项目数据情况,可以在此处编辑数据,并及时地反馈到界面上。1

Storage panel

Storage panel 用于显示当前项目使用 wx.setStorage 或者 wx.setStorageSync 后的数据存储情况。

可以直接在 Storage panel 上对数据进行删除(按 delete 键)、新增、修改1

Network panel

Network Panel 用于观察和显示 request 和 socket 的请求情况1
注:uploadFile 和 downloadFile 暂时不支持在 Network Panel 中查看

Console panel

Console panel 有两大功能:

1.开发者可以在此输入和调试代码1
2.小程序的错误输出,会显示在此处1
在控制台中可以输入以下命令

build: 编译小程序

preview: 预览

upload: 上传代码

openVendor: 打开基础库所在目录

openToolsLog: 打开工具日志目录

checkProxy(url): 检查指定 url 的代理使用情况

Sensor panel

Sensor panel 有两大功能:

1.开发者可以在这里选择模拟地理位置1
2.开发可以在这里模拟移动设备表现,用于调试重力感应 API1

自定义数据上报

开发者工具上可以编辑和调试自定义分析的数据上报功能,点击菜单栏中的 “工具 - 自定义分析” 即可弹窗打开自定义分析:1
在页面中可以新建、查看或修改事件,在修改事件的页面中编辑完毕后,点击底部的保存并测试按钮将保存当前配置,同时工具将在调试器上提示收到最新配置,并展示配置信息,展示的内容包括事件的 ID 和名称,以及每个动作的触发条件和上报数据:11
接着可以在模拟器中操作和触发事件。在模拟器中刷新小程序也将获取该测试配置,除非窗口被关闭。窗口关闭后模拟器不会再收到配置。当事件被触发上报时,工具上会展示上报信息,包括事件 ID、触发页面、触发方式、触发时动作、以及上报的字段值和数据:1
同时可以在窗口中点击 “同步结果” 会同步显示上报的数据:1
关闭窗口后,配置将全部失效,模拟器不再收到配置并不再触发上报(小程序中使用 wx.reportAnalytics API 进行的数据上报仍会在工具中输出)。 测试成功后,可到小程序后台发布事件配置,即可正式生效收集所定义的事件数据。

自动预览

自动预览可以实现编写小程序时快速预览,免去了每次查看小程序效果时都要扫码或者使用小程序开发助手的麻烦。只需按下快捷键,保持前台运行的微信即可自动唤出或刷新小程序。要使用自动预览功能,需要配合 6.6.7 及以上的微信客户端版本。1
要开始使用 “自动预览” 功能,可以在打开预览二维码的时候,点击 “自动预览” 标签以切换到自动预览模式。切换到自动预览模式后,只需按下预览快捷键,或者点击浮窗上的 “编译并预览” 按钮,即可触发自动预览。此时工具会上传代码,保持前台运行的微信客户端会自动刷新当前开发的小程序。

当自动预览成功时,工具栏上的预览图标会显示为一个绿勾。如果预览出错,则会显示为一个红色惊叹号,可以点击查看详情。

注意,自动预览功能仅限与登陆开发者工具的同账号微信使用。如需换回普通预览模式,只需要点击 “扫描二维码预览” 标签即可。

用户可以在快捷键设置里自定义预览快捷键。1

特殊场景调试

小程序开发者工具是对微信客户端的模拟,受限于桌面设备同移动设备的差异,以及微信的一些特有数据,同时考虑到开发的便捷性,部分 API 在工具和微信中有所不同。

扫码接口

同手机端直接调用摄像头来扫码不同,在 PC 或者 Mac 上调用摄像头来扫码完成调试是一个低效的行为,所以在开发工具上调用二维码扫码 API 后,开发者可以选择一个本地的图片来进行后续的逻辑调试,而不是真正的启用摄像头来扫码,流程有所不同,但是接口的输入和输出是一致的。

微信支付

最新版本的开发者工具已经支持微信支付的调试,但是为了兼顾到安全,同手机上直接调用微信支付有所不同:

新绑定的开发者需要 24 小时后才有权限进行微信支付的调试
开发者在工具上调用微信支付的 API 后,开发工具会出现一个二维码,开发者必须使用当前开发所使用的微信号扫码后在手机上完成支付的流程;工具会同步移动端微信支付的回包到工具中,开发者自行进行后续的操作;使用的交互有所不同,但是接口的输入输出工具同客户端是保持一致的。

启动使用自定义参数

在日常使用中,用户可以通过扫码、分享打开一个小程序,这时候会依据设置的启动页面:path 跳转到对应的小程序页面(不一定是首页)并且可以携带参数:query。在开发者工具中,开发者同样可以通过自定义编译条件的方式来达到调试不同启动页面和启动参数的目的。

例如下图是选择进入页面是 page/API/index,参数 是 name=can1

进入场景值

在微信客户端中,用户可能在各个场景下打开小程序 详情 ,然而在开发者工具中是没有真实的环境去模拟这些场景的。开发者可以通过条件编译的方式来达到调试不同场景的目的1

普通的转发

开发者工具上调用转发是一个模拟的行为,并不会真实的转发给用户,开发可以通过这个模拟行为判断是否正确的调用了转发 API。

带 shareTicket 的转发
带 shareTicket 的转发可以获取到更多的转发信息,例如群聊的名称以及群的标识 openGId。在小程序开发者工具上,开发者可以通过以下方式来调试带 shareTicket 的转发。

调用 wx.showShareMenu 的参数 withShareTicket 为 true 时,点击模拟器右上角菜单后出现的转发按钮,会出现一个测试群列表,如图:1
开发者点击选取任何一个群,可以通过接口的回包获取到 shareTicket ,通过调用 wx.getShareInfo 可以获取到相关转发的信息

当开发者需要调试从某一个群点开,并且带有 shareTicket 的场景时,可以使用自定义编译中的 1044:群聊会话中的小程序消息卡片(带 shareTicket) 同时可以选择任一模拟测试群,如图1

预览使用自定义编译条件

同 启动使用自定义参数 相同,提交预览时,开发者可以通过自定义预览的方式来达到在移动设备上调试不同启动页面和启动参数 的目的。我们可以选择已经创建好的自定义编译条件进行预览。

跳转小程序调试支持

小程序跳转开发调试可以分为两个部分

1.调试小程序是否能够正确的跳转

出于小程序代码的安全考虑,在工具上调用 wx.navigateToMiniProgram 的时候,开发者工具不会真实的打开和跳转到另外的小程序,但是工具会判断当前小程序与需要跳转的小程序之间的绑定关系,输出相关信息给到开发者。开发者可以根据成功或者失败的回调函数来判断调用是否成功。

2.调试被打开的小程序时候正确的接收参数

选择 自定义编译 进入场景选择 1037 从小程序进入 可以调试小程序被打开时候是否接收到了正确的参数并做了相关处理。1
选择 自定义编译 进入场景选择 1038 从小程序返回 可以调试小程序返回时候是否接收到了正确的参数并做了相关处理。1

真机调试

功能概述

真机远程调试功能可以实现直接利用开发者工具,通过网络连接,对手机上运行的小程序进行调试,帮助开发者更好的定位和查找在手机上出现的问题。

调试流程

要发起一个真机远程调试流程,需要先点击开发者工具的工具栏上 “远程调试” 按钮。1
此时,工具会将本地代码进行处理打包并上传,就绪之后,使用手机客户端扫描二维码即可弹出调试窗口,开始远程调试。

远程调试窗口

使用手机扫描此二维码,即可开始远程调试。

要结束调试,直接关闭此调试窗口,或点击右下角 “结束调试” 按钮即可。1
远程调试窗口分为两部分,分别是左侧的调试器视图、右侧的信息视图。开发者可以在调试器里直接进行代码的调试,并查看 Storage 情况;信息视图则可以查看目前与手机和服务器的连接情况,以及发生的错误信息等。

调试器

在远程调试的调试器里,开发者可以在 Console 面板里对代码进行调试,在 Sources 面板里查看小程序的源代码并进行断点单步调试,在 Storage 面板里查看小程序的 Storage 使用情况等。1
注意,要在 Console 里对小程序进行调试,需要将调试的上下文切换到 VM Context 1,如图所示1
在 Sources 面板查看源代码时,开发者所有的文件路径都是以 weapp:// 开头的1
除了可以在调试器进行单步调试,开发者还能在代码中手动插入 debugger; 语句进行断点调试。因此,如果想要在小程序启动的尽早时刻断点,可以在进入远程调试之前,编辑代码手动在需要断点处的代码插入 debugger; 语句来实现。

WXML、AppData、Storage 面板的操作和开发者工具调试模拟器时的操作一致。注意,如果在右侧信息视图取消勾选了 “使用工具端的 Storage”,则所有的 Storage 数据将被存储在手机上,将不再出现 Storage 面板。111

信息视图

1
上面的信息视图展示了手机、网络连接的信息。手机信息展示手机的型号、系统、名称、微信版本等信息,以及通信延时。通信延时越小,与手机的通信越流畅。

在 “连接信息” 里,展示了工具与服务器的连接信息,包括了连接状态、服务器状态等,当连接故障、服务器阻塞影响到调试的过程和流畅度时,此处将展示这一状态。当连接状态为 “已结束” 时,表明调试已被终止。

“警告和错误” 展示了最近发生的错误和警告信息。如果网络连接断开,此处将会询问开发者是否需要重新连接。

手机端展示

调试过程中的手机端展示如下所示。

当手机无网络或者进入了断点状态时,将会出现一个浮层提示并阻止进一步的操作。
1

命令行调试

开发者工具提供了命令行与 HTTP 服务两种接口供外部调用,开发者可以通过命令行或 HTTP 请求指示工具进行登录、预览、上传等操作。

命令行

通过命令行调用安装完成的工具可执行文件,完成登录、预览、上传、自动化测试等操作。调用返回码为 0 时代表正常,为 -1 时错误。

命令行工具所在位置:

macOS: <安装路径>/Contents/Resources/app.nw/bin/cli

Windows: <安装路径>/cli.bat

  1. 命令行启动工具

-o, --open [projectpath]: 打开工具,如果不带 projectpath,只是打开工具。如果带 project path,则打开路径中的项目,每次执行都会自动编译刷新,并且自动打开模拟器和调试器。projectpath 不能是相对路径。项目路径中必须含正确格式的 project.config.json 且其中有 appid 和 projectname 字段。

示例:

cli -o //打开工具
cli -o /Users/username/demo //打开路径 /Users/username/demo 下的项目
  1. 命令行登录

命令行提供两种登录方式:一是将登录二维码转成 base64 给用户,让用户自己集成到自己系统中使用;二是将二维码打印在命令行中。

-l, --login: 启动登录逻辑。

--login-qr-output [format[@path]]: 指定二维码输出形式,format 可选值包括 terminal(命令行输出), base64, image。如果有填 path,表示结果输出到指定路径的文件中。如果没填 path,表示将结果输出到命令行。不使用此选项或使用了但没有填 format 的话则默认为命令行打印。

示例:

cli -l  //登录,在终端中打印登录二维码
cli -l --login-qr-output base64  //登录,在终端中打印登录 base64 形式的二维码 
cli -l --login-qr-output base64@/Users/username/code.txt  //# 登录,二维码转成 base64 并存到文件 /Users/username/code.txt
  1. 命令行提交预览

预览时必须处于登录状态,如果没有登录,会提示需先登录。预览的二维码可命令行打印也可以转成 base64。ES6 等项目配置从 project.config.json 读。

-p, --preview : 预览代码,project_root 指定项目根路径。

--preview-qr-output [format[@path]]: 指定二维码输出形式,语义同登录用的选项 --login-qr-output。

示例:

cli -p /Users/username/demo  //预览,在终端中打印登录二维码
cli -p /Users/username/demo --preview-qr-output base64@/Users/username/code.txt // 预览,二维码转成 base64 并存到文件 /Users/username/code.txt
  1. 命令行上传代码

上传代码时必须处于登录状态,如果没有登录,会提示需先登录。

上传代码需要的信息包括项目根目录、版本号、以及可选的版本备注。

-u, --upload : 上传代码,version 指定版本号,project_root 指定项目根路径。

--upload-desc : 上传代码时的备注。

示例:

cli -u 1.0.0@/Users/username/demo --upload-desc 'initial release' //上传路径 /Users/username/demo 下的项目,指定版本号为 1.0.0,版本备注为 initial release
  1. 支持自动化测试
    -t, --test : 提交自动化测试,project_root 指定项目根路径。

示例:

cli -t /Users/username/demo   //提交测试路径 /Users/username/demo 下的项目

测试号

为方便开发者开发和体验小程序、小游戏的各种能力,开发者可以申请小程序或小游戏的测试号,并使用此帐号在开发者工具创建项目进行开发测试,以及真机预览体验。

申请测试号

申请测试号的过程非常简单。只需访问 申请地址 ,并扫码登录后,即可查看到已为自己分配好的测试帐号信息。1

创建测试号项目

在得到了测试号的帐号信息之后,可以在开发者工具中使用此帐号信息创建项目进行开发。1
如图所示,打开工具并新建一个小程序项目,填入测试帐号的 appid,即可创建测试项目。1
如果需要跳过网络请求域名的校验,可勾选项目设置里的 “不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书” 选项。

点击工具栏上的预览按钮即可在真机上预览体验。在真机上如需跳过网络请求域名的校验,需要点击右上角选项,选择 “打开调试” 即可。1

http调用

开发者工具提供了命令行与 HTTP 服务两种接口供外部调用,开发者可以通过命令行或 HTTP 请求指示工具进行登录、预览、上传等操作

HTTP

http 服务在工具启动后自动开启,HTTP 服务端口号在用户目录下记录,可通过检查用户目录、检查用户目录下是否有端口文件及尝试连接来判断工具是否安装/启动。

端口号文件位置:

macOS : ~/Library/Application Support/微信web开发者工具/Default/.ide

Windows : ~/AppData/Local/微信web开发者工具/User Data/Default/.ide

打开工具或指定项目

接口定义:URL: /open HTTP 方法: GET

URL参数 必填 说明
projectpath 打开指定路径中的项目。如项目已打开,自动刷新项目。如项目未创建,自动创建并打开项目

示例:

http://127.0.0.1:端口号/open   //打开工具
http://127.0.0.1:端口号/open?projectpath=项目全路径  //打开/刷新项目

注意:

项目路径中必须含正确格式的 project.config.json 且其中有 appid 和 projectname 字段

项目路径需经 URL encode

登录

接口定义:URL:/login HTTP 方法:GET

URL参数 必填 说明
format 指定登录二维码返回格式,可选值有 image、base64、terminal,默认 image。图片格式为 png
qroutput 指定文件路径,在文件写入二维码数据。如指定,二维码将被写入指定路径的文件内,如未指定,二维码将作为请求相应体返回

示例:

http://127.0.0.1:端口号/login   //登录,返回图片格式的二维码
http://127.0.0.1:端口号/login?format=base64 //登录,取 base64 格式二维码
http://127.0.0.1:端口号/login?format=base64&qroutput=%2FUsers%2Fusername%2Flogincode.txt   //登录,取 base64 格式二维码,并写入 /Users/username/logincode.txt

预览

接口定义:URL:/preview HTTP 方法:GET

URL参数 必填 说明
projectpath 预览指定路径中的项目。如项目已打开,自动刷新项目。如项目未创建,自动创建并预览项目
format 指定登录二维码返回格式,可选值有 image、base64、terminal,默认 image。图片格式为 png
qroutput 指定文件路径,在文件写入二维码数据。如指定,二维码将被写入指定路径的文件内,如未指定,二维码将作为请求相应体返回

示例:

http://127.0.0.1:端口号/preview?projectpath=%2FUsers%2Fusername%2Fdemo     //预览路径为 /Users/username/demo 的项目,返回图片格式的二维码
http://127.0.0.1:端口号/preview?projectpath=%2FUsers%2Fusername%2Fdemo&format=base64     //预览路径为 /Users/username/demo 的项目,返回 base64 格式的二维码
http://127.0.0.1:端口号/preview?projectpath=%2FUsers%2Fusername%2Fdemo&format=base64&qroutput=%2FUsers%2Fusername%2Flogincode.txt     //预览路径为 /Users/username/demo 的项目,返回 base64 格式的二维码,并写入 /Users/username/logincode.txt

上传

接口定义:URL:/upload HTTP 方法:GET

URL参数 必填 说明
projectpath 上传指定路径中的项目
version 版本号
desc 本次上传的版本备注

示例:

http://127.0.0.1:端口号/upload?projectpath=%2FUsers%2Fusername%2Fdemo&version=v1.0.0     //上传路径为 /Users/username/demo 的项目,指定版本号为 v1.0.0
http://127.0.0.1:端口号/upload?projectpath=%2FUsers%2Fusername%2Fdemo&version=v1.0.0&desc=test     //上传路径为 /Users/username/demo 的项目,指定版本号为 v1.0.0,并带上备注

自动化测试

接口定义:URL:/test HTTP 方法:GET

URL参数 必填 说明
projectpath 测试指定路径中的项目

示例:

http://127.0.0.1:端口号/test?projectpath=%2FUsers%2Fusername%2Fdemo   //提交路径为 /Users/username/demo 的项目进行测试

请求响应:正常情况下 HTTP 相应状态码为 200,错误时 400,返回如下格式的 JSON 字符串:

{
  "code": 40000,
  "error": "原因"
}

小程序开发助手

功能概述

“小程序开发助手” 是微信公众平台发布的官方小程序,帮助开发和运营人员在手机端更方便快捷地查看和预览小程序,扫描下面小程序码可立即体验1
使用者可以在小程序开发助手查看和预览与自己关联的所有小程序。小程序将会按照其更新时间自动排序,显示在最上面的小程序是最近有提交的小程序,例如开发者预览了新的代码,或者体验版有更新1
通过点击并展开小程序列表,使用者可以根据自己的身份,浏览到小程序的线上版本、体验版本或开发版本。如果使用者是小程序的管理者,可以浏览到全部三种版本;如果使用者身份是 “体验者”,则可以浏览到线上版本、体验版本,而不会浏览到任何开发版本;如果一个小程序有多个开发者,则开发版本的列表将会显示每一个开发者提交预览的最新版本。1
如图,小程序的开发版和体验版会展示提交/发布者、更新时间,以及代码的编译前后大小。

通过点击列表上的相应版本,使用者可以立即预览该版本对应的小程序。点击导航栏的返回,可以返回到小程序开发助手,预览其他版本的小程序

代码片段

代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验、展示组件和 API 的使用、复现开发问题等等。分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段。如果网页可点击的链接指向的是分享链接,那么点击链接也会自动打开工具进入代码片段导入页。使用最新版的开发者工具可以点此体验导入代码片段。

创建代码片段

在工具选择项目的界面中,右侧可以选择代码片段页卡,查看所有本地代码片段,在右下角可以点击创建代码片段。1
创建代码片段需要填入代码片段名称、本地存放目录。AppID 不是必填项,如果需要演示依赖 AppID 的操作则需填写。如果存放目录是空目录,则可在下方选择小程序、小游戏等的快速启动模板1
信息填写正确后,点击创建即可完成创建并打开代码片段。

代码片段主界面

代码片段的主界面与普通项目主要有以下几点区别:

1.没有上传、腾讯云和申请测试报告等功能

2.详情页中会展示上次分享的链接,并可以一键复制

3.代码片段的快速启动模板与普通项目的快速启动模板不同,体积更小,功能更精简1

分享代码片段

在工具栏上点击分享按钮即可开启分享代码片段的流程,在分享信息中需要填写以下内容:

1.项目描述:简要介绍此代码片段的功能和目的

2.是否需要 AppID:如果是,开发者导入代码片段时会建议其填入 AppID 以完整运行代码片段

3.最低库版本:开发者打开导入的代码片段时详情页的调试基础库不会低于指定的版本

4.分享的小程序代码片段最大大小为 100KB,小游戏代码片段最大为 200KB。1
分享成功后会展示分享链接,可复制分享给其他开发者,其他开发者在工具中选择导入代码片段并粘贴链接即可导入1
分享的链接除了可以粘贴到导入页导入外,还可以设置为可点击的链接。如果 html 标签的 href 属性设置为分享的链接,如 代码片段示例,则用户点击此链接时会自动打开工具进入代码片段导入页,最后点击导入即可完成导入。在开发者社区发帖时,如果想要提供 demo 示例,如果想要提供 demo 示例,可以插入一个链接为代码片段分享链接的超链接1

导入代码片段

在选择代码片段的页面的右下角可以点击导入进入导入页,或者点击菜单栏上的项目选项卡下的导入代码片段来打开导入页。导入时需要填写分享链接或代码片段 ID。链接的最后一部分即是代码片段的 ID,如 wechatide://minicode/76b799966b6ead1837edac517cc02e02 的 ID 为 76b799966b6ead1837edac517cc02e02。1
导入时可选择存放目录和 AppID。存放目录默认是在临时文件夹1

第三方平台

概述

小程序运营者,可以一键授权给第三方平台,通过第三方平台来完成业务。第三方平台在小程序的前后端开发上同直接开发小程序有所区别,其所拥有的各项 API 以及详细说明请查看 代小程序实现业务 ,其余部分请阅读下文。

开发第三方平台小程序具有一定的复杂性,首先需要确认三个概念:

open3rd:第三方平台,是小程序官方认可的第三方开发商 详情

3rdMiniProgramAppid:第三方平台申请的并绑定在该平台上的小程序,用于开发小程序模板

extAppid:授权给第三方平台的小程序

第三方平台相关的小程序开发需要做一些特殊的处理:

小程序模板的开发

小程序模板结合 extAppid 的开发调试

使用 directCommit 直接提交至待审核列表 详情

最新版本的开发工具支持第三方平台小程序的开发和预览。

创建项目

与开发普通小程序一致,第三方平台开发者填入相关的 3rdMiniProgramAppid ,设定项目名称和选择项目目录即可创建项目。

对于第三方平台小程序,可以在项目页卡查看到相关的 open3rd 信息以及当前的第三方的 3rdMiniProgramAppid ,如若项目配置了相关的 extAppid ,那么项目页卡中也会有相关信息。1

小程序模板开发

与开发普通小程序一致,开发者在开发工具上开发好相关的业务逻辑之后,在项目页卡中提交预览既可以在微信中查看小程序的真实表现。

有所不同的是,第三方平台小程序的提交上传是上传至该第三方平台的 open 帐号下的模板草稿箱中,该平台的管理员需要自行对该模板进行相应的设置,更多请参考 开放平台的文档 。

extAppid 的开发调试

为了方便第三方平台的开发者引入 extAppid 的开发调试工作,需要引入 ext.json 的概念。

ext.json 是一个配置文件,放置在小程序项目的根目录下。

以下是一个包含了所有配置选项的 ext.json :

{
  "extEnable": true,
  "extAppid": "wxf9c4501a76931b33",
  "directCommit": false,
  "ext": {
    "name": "wechat",
    "attr": {
      "host": "open.weixin.qq.com",
      "users": [
        "user_1",
        "user_2"
      ]
    }
  },
  "extPages": {
    "pages/logs/logs": {
      "navigationBarTitleText": "logs"
    }
  },
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Demo",
    "navigationBarTextStyle":"black"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页"
    }, {
      "pagePath": "pages/logs/logs",
      "text": "日志"
    }]
  },
  "networkTimeout": {
    "request": 10000,
    "downloadFile": 10000
  }
}

ext.json中的配置字段分为两种

特有的字段

同 app.json 相同的字段

属性 类型 必填 描述
extEnable Boolean 配置 ext.json 是否生效
extAppid String 配置 extAppid
ext Object 开发自定义的数据字段
extPages String Array 单独设置每个页面的 json
directCommit Boolean 是否直接提交到待审核列表
extEnable

extEnable 是一个 Boolean 类型的字段,用于规定当前的 ext.json 文件是否生效,开发者可以通过修改这个字段来开启和关闭 extAppid 的结合开发。

extAppid

extAppid 是授权调试的 AppID ,例如开发者在此处填写的是 wxf9c4501a76931b33 那么在 extEnable 为真的情况下,后续的开发逻辑都会基于 wxf9c4501a76931b33 来运行。

3 ext

ext 字段是开发自定义的数据字段,在小程序中可以通过 wx.getExtConfigSync 或者 wx.getExtConfig 获取到这些配置信息。

例如上面的例子中,通过 wx.getExtConfigSync 就可以获得 ext 字段的所有配置

{
  "name": "wechat",
  "attr": {
    "host": "open.weixin.qq.com",
    "users": [
      "user_1",
      "user_2"
    ]
  }
}
extPages

extPages 是一个对象,对象中的每个 key 应该是该小程序模板 app.json 中定义的页面,每个 key 对应的 value 是 page.json 中所规定的各项配置。

当开发者设置这个配置以后,小程序框架会对应的修改相对应的 page 的配置信息。

directCommit

directCommit 是一个 Boolean 类型的字段,用于规定当前的上传操作是否是直接上传到 extAppid 的审核列表中。

当 directCommit 为 true 真时,开发者在工具中的上传操作,会直接上传到对应的 extAppid 的审核列表,第三方平台只需要调用 https://api.weixin.qq.com/wxa/submit_audit?access_token=TOKEN 既可以提交审核。更多请参考 第三方平台文档

当 directCommit 为 false 或者没有定义时,开发者在工具中的上传操作,会直接上传到对应的草稿箱中。

tips: 可以使用工具的命令行接口 或者 http 接口来实现自动化的代码提交审核

同 app.json 相同的字段

当 ext.json 中的字段同 app.json 中一致时,ext.json 的字段会覆盖 app.json 中的对应字段,例如以下的 ext.json

{
  ········
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "ext navigationBarTitleText",
    "navigationBarTextStyle":"black"
  }
}

那么该小程序最终的 navigationBarTitleText 应该是 ext navigationBarTitleText

2018-11-18 18:35:00 weixin_34174105 阅读数 573

先介绍一下最近遇到的问题:

最近小程序项目中有文章详情页需要渲染富文本,微信小程序官方提供的<rich-text>是个弱鸡,很多标签不支持,用起来也麻烦,性能也不咋地。

吐槽完了,我们决定寻找其他方案-wxParse,一个小程序前端使用的javascript库,前端直接转换渲染。使用到了微信小程序的模板渲染,但是依然弱鸡,经常出现各种Javascript错误,很多标签不兼容。

 

我们的需求是

一篇文章详情图文Html标签正常解析,就连视频和音频,常见Html标签,代码标签都要渲染出来。

 

起初,我想的也是在微信小程序端,使用JavaScript处理这些编译渲染的工作,或者拿到WxParse的代码去改改。

无奈,我的JavaScript水平虽然不是弱鸡,单也耗时费力。于是我就转变思路寻找服务器端的解决方案,将需要渲染的Html在后端处理好,然后前端根据配置的模板动态渲染。

这个思路敲定以后,非常幸运地在开源中国码云里找到了一个靠谱的项目-html2wxml 

这个项目有好几种使用方式:

第一种、插件版

1、需要使用者在微信小程序后台,添加html2wxml这个第三方插件服务,在小程序里配置一下这个插件,就能自动加载和使用了,非常方便。

2、添加完插件后,需要在微信小程序项目里配置一下这个插件:注意version版本号和appid

61140afcee0ede98b381179f7fd02447214.jpg

代码如下:

 "plugins": {
 	"htmltowxml": {
 		"version": "1.3.0",
 		"provider": "wxa51b9c855ae38f3c"
 	}
 }

ac161da1eef0ee46625b5f9787e445a8ed6.jpg

3、然后,在对应需要使用这个插件渲染Html富文本的页面,找到对应的JSON文件,加入一个声明:代码如下

78be9240267e5df671a03c378b6f3e2e267.jpg

这样,插件版的使用配置就完成了,剩下的就是如何具体在页面中使用这个插件去渲染了。

 

在我们自己的小程序项目中找到页面对应的JavaScript文件,添加一个模拟读取外部Html的过程:

07f9313b21cf8f33497ab9ea889493ea082.jpg

我们读取到Html后赋值为本页面定义的一个数据变量“html”;

然后在对应的Index.wxml中 加入插件提供的调用方式:

99c2b20612451bb6368dd9b8d66874eb1e4.jpg

直接把Html变量丢给这个组件的text属性就可以了,其他属性可以去html2wxml的码云站点看文档说明。

 

我们来看一下成果:

第一个是在浏览器里查看的效果:

adc876f360fd58a94ed873a95e34a707e59.jpg

再来看看 小程序里插件版的转换效果:是不是一毛一样~~

30adca00a55273bed3e36c183c74c71696f.jpg

 

好了,讲到这里大家都明白Html2Wxml是干什么的了,也知道如何使用了,这里我们发现一个问题,这个插件版如何给我们转换的代码呢?

看看NetWork就知道了:看下图,原来是插件自动将html代码发给插件提供的服务接口,将html转成了JSON格式的NODE节点数据,然后交给了插件在小程序解析渲染。

33020a82425686829ed603d1e459a7798d1.jpg

那么,问题来了:我线上的应用都是用官方提供的这个接口服务器地址,万一哪天扛不住挂了怎么办,小程序不也跟着废了吗?

这个问题,作者当然想到啦~~~

二、除了插件版,作者还提供了另外两个版本 模板版本和自建服务器组件版,这两个版本都需要下载一套代码集成到微信小程序的项目中。

1、模板版本的我这里就不讲了,官方有文档 我先截个图过来

4c4801415af970b982952f0b203b385a94d.jpg

2、自建服务器组件版,需要下载整套HTML2Wxml组件版的源代码,集成到我们现在的微信小程序项目中。

这里下载有两个选择,一个是PHP版本,一个是Java版本 其中PHP版本是html2wxml的作者写的,目前插件版访问的就是后端PHP版本。

但是,我是搞Java的小伙儿,PHP略懂。。。 自己搭建完也正常使用了,但是总觉不爽,于是我就写了一个Java版的后端转换程序,并且开源了。

哎呀,妈呀,写了这么多终于说到自己了~~

 

三、实战实战

项目地址https://www.oschina.net/p/html2wxml4j

具体用法也很简单:

1、首先,下载组件源码 集成到小程序项目中 直接拿截图吧

39f8541d5f303f4ec5c6b3e2a0df2e242aa.jpg

a513ad4bdd242413dee7d9a415487bde811.jpg

注意组件版的代码放的位置,我是放在了和Pages在同一级目录下,然后跟插件版不一样的是在Index.json中的引用配置,具体的存放路径。

3b8322a27875834c08c7994569a40d0b7cd.jpg

 

其实默认,如果到此位置,也就是用了组件版替换了插件版,但是最后调用的服务器接口,还是官方提供的,在上图的文件里可以找到这个地址。

那么如果,我们需要自己使用自己部署的后端服务,就需要下载Java版或者Php版本的接口源码,自己部署后,在这里替换掉接口地址就行了。

2、下载Html2wxml4J的源码

源码是JFinal+JSoup+FastJson开发的,JFinal作为Controller层,如果有使用Spring系列的 可以几分钟内参照JFinal的Controller 改掉。

6bf5302aa8529e6f88c7f617e136900f44c.jpg

主要就是这个IndexController,接口的入口处理器,在这里主要传递的就是text参数。

75e6bf9ab8fb112929129bdaa6aa97ae3d9.jpg

直接右键 run as,启动MainConfig.java,80端口。

使用http://127.0.0.1 就可以访问了。

4b03e5a08842ce3a44d64f7e222ba223d65.jpg

不传任何数据,返回空的数组(废话~~)。

08c5a7580bba21c296149cfbf73cd4a4367.jpg

text参数传递过来一个h1标签,转换成下面的节点数据。

这些数据 在小程序里使用组件可以直接解析了。

 

b5aa5cb374a6b7b0e6420e038572942ae0b.jpg

那我再把微信小程序里组件上的接口地址改成 这个http://127.0.0.1.

去看看转换的效果~~

cbf7818a4b61d549b1d58482f1e5ee6ad8e.jpg

 

好了,终于搞定了,这样就完成了一个从服务端解析转换 小程序里渲染Html的方案,而且还是Java版的哦~~

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/imhoodoo/blog/2877828

2017-04-26 18:57:39 qq_38530880 阅读数 1016
开发小程序,并非一定要使用官方的编辑器,你也可以任意选择自己喜欢的编辑器;

编辑完毕,预览在小程序编辑器内即可;

比如你可以使用支持协同开发的开发工具来弥补官方开发者工具无法协同开发的问题;

问题:如何进行多人间的协同开发,代码如何进行版本管理
在项目目录使用git或者svn等代码管理工具即可

相关文章:
atom 支持微信小程序开发环境
使用类eclipse编辑器开发小程序,支持代码高亮与语法自动...
用WebStorm在微信小程序中使用LESS
使用Sublime编写微信小程序
在Linux系统下运行微信Web开发者工具
在Linux下开发微信小程序
Mint8(ubuntu16.04) 搭建微信Web开发工具(linux)

相关工具:
微信小程序支持150329版本的Sublime插件
使用atom开发微信小程序:ATOM编辑器自动补全插件
微信小程序 snippets for vscode
VSCODE微信小程序辅助小工具自用版(11月18日更新)
VSCode 插件:为 VSCode 提供 wxml 语法支持及代码片段
webstorm开发微信小程序代码提醒(webstorm开发工具)
为 sublime text 2&3 微信应用号/小程序 snippet(适用1028版本)
微信小程序的sublimeText插件
微信小程序 sublime 插件
web 端实时运行工具WEPTv0.4.0:已全面支持1028版本(11月13日更
微信web开发者工具linux完美支持
Matchmaker:微信小程序专用IntelliJ IDEA插件
wxapp.vim:提供微信小程序开发全方位支持的 vim 插件
Egret Wing:白鹭编辑器

附录:我用sublime(sublime开发小程序)(作者:toBeMN)
微信团队提供的IDE(集成开发环境)大家也都知道了,已经被吐槽的生无可恋,于是都纷纷去寻找更加上手的IDE,目前应该是只有“白鹭EGRET”支持实时预览,至于这款IDE好不好大家可以自己尝试。
我在此推荐的是一个轻巧而不失强大的文本编辑器———sublime
没错它只是一个文本编辑器,但是丰富的插件和精致的颜值直接将它推向了IDE的神坛,只要有插件,就能将sublime打造成各种技术方向的IDE,包括html,php,python,java等。于是它就成了程序员装机必备的软件之一。
因为插件众多,一个一个的安装显然不切实际且浪费时间,所以这里我分享一个自己用的爽的集成大部分实用插件的sublime:https://pan.baidu.com/s/1jIr4WNO (汉化版)
包括常见的后缀文件,代码提示,代码重叠,代码高亮,编码格式等等,谁用谁知道
有自己想补充的插件可以搜索安装插件的方法,方法有两,但我就不说,快去搜索吧
来看看sublime的妆容
 
我喜欢黑色系(主要是经常晚上敲代码,白色亮瞎),这款sublime也集成了很多主题,可以在首选项—》主题方案 中设置
右下角可设置 制表符缩进宽度,修改文件类型(这个很关键,一般后缀sublime会自动分析文件类型,但对于微信小程序这种特殊后缀的,如果不设置好文件类型是不会出现代码提示的)
[AppleScript] 纯文本查看 复制代码
?
1
2
3
4
wxml设置文件类型为html
wxss设置文件类型为css
js设置文件类型为javascript
json设置文件类型为json
现在先来试一下html吧
 
回车
 
简直快准狠
回归小程序的话题,因为sublime只是敲代码的地方,最终运行结果还是得看官方的IDE,所以使用sublime开发微信小程序的流程是这样的:
创建小程序项目,直接将整个项目文件夹拖入sublime,即可在sublime里面进行编辑,而官方的IDE就只是单纯用来调试用的!!!
让代码提示加速你的编码速度
如今上架了微信小程序,果不其然,大神们开始写专属微信小程序的snippets(sublime通过 “Sublime-snippet” 实现快速补全代码),群友们也提供了插件下载的链接:https://github.com/Abbotton/weapp-snippet-for-sublime-text-2-3
这里就教程一波如何通过snippet实现微信小程序的代码提示
下载上方链接提供的snippet
将红色文件夹直接放入sublime的安装目录 PackagesUser 下
重启sublime
将小程序的wxml文件类型设置为html(才能有代码提示的功能)
 

6.png (24.63 KB, 下载次数: 0)

下载附件

2017-3-22 17:27 上传


为了防止这个snippet的代码提示和其它的冲突,该snippet的作者设定以w开头触发代码提示,至于具体的规则,请看下载地址下的readme文件
2016-10-13 09:54:46 qq_31383345 阅读数 29092

微信小程序已经跑起来了.快捷键设置找了好久没找到,完全凭感觉.图贴出来.大家看看.

我现在用的是0.10.101100的版本,后续版本更新快捷键也应该不会有什么变化.



现在貌似不能修改.如果有同学找到修改的方法,麻烦告诉我.谢谢.

微信小程序代码编辑快捷键

常用快捷键

格式调整

  • Ctrl+S:保存文件
  • Ctrl+[, Ctrl+]:代码行缩进
  • Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块
  • Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行
  • Shift+Alt+F:代码格式化
  • Alt+Up,Alt+Down:上下移动一行
  • Shift+Alt+Up,Shift+Alt+Down:向上向下复制一行
  • Ctrl+Shift+Enter:在当前行上方插入一行

光标相关

  • Ctrl+End:移动到文件结尾
  • Ctrl+Home:移动到文件开头
  • Ctrl+i:选中当前行
  • Shift+End:选择从光标到行尾
  • Shift+Home:选择从行首到光标处
  • Ctrl+Shift+L:选中所有匹配
  • Ctrl+D:选中匹配
  • Ctrl+U:光标回退

界面相关

  • Ctrl + \:隐藏侧边栏


C#微信开发

阅读数 5514

微信小程序指南

阅读数 522