微信小程序开发的四十个技术窍门总结(推荐)
前言
微信“小程序”正式上线一周时间,相关话题持续升温。支付宝开发“小程序”的消息也随即曝出,互联网巨头们摩拳擦掌,不少网友调侃说,这势头感觉要挑战现有的“APP帝国”了。那么,面对如此炙手可热的小程序,WeX5移动开发云也没有闲着,经过全网搜索,为大家筛选出一条小程序开发者的必读文章,内容涵盖小程序开发实战需要注意的40个技术点,供大家参考!
Q:为什么脚本内不能使用window等对象
A:页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件
Q:为什么 zepto/jquery 无法使用
A:zepto/jquery 会使用到window对象和document对象,所以无法使用。
Q:wx.navigateTo无法打开页面
A:一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo
不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo
Q:样式表不支持级联选择器
A:WXSS支持以.开始的类选择器。
Q:本地资源无法通过 css 获取
A:background-image
:可以使用网络图片,或者 base64,或者使用<image/>标签
Q:如何修改窗口的背景色
A:使用 page 标签选择器,可以修改顶层节点的样式
page { display: block; min-height: 100%; background-color: red; }
Q:为什么上传不成功
A:为了提升体验流畅度,编译后的代码包大小需小于 1MB ,大于 1MB 的代码包将上传失败。
Q:HTTPS 请求不成功
A:tls 仅支持 1.2 及以上版本
Q:网络请求的 referer
A:网络请求的 referer 是不可以设置的,格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid}
为小程序的 appid
, {version}
为小程序的版本号,版本号为 0 表示为开发版。
Q:不能直接操作 Page.data
A:避免在直接对 Page.data
进行赋值修改,请使用 Page.setData
进行操作才能将数据同步到页面中进行渲染怎么获取用户输入
能够获取用户输入的组件,需要使用组件的属性bindchange将用户的输入内容同步到 AppService。
<input id="myInput" bindchange="bindChange" /><checkbox id="myCheckbox" bindchange="bindChange" /> var inputContent = {} Page({ data: { inputContent: {} }, bindChange: function(e) { inputContent[e.currentTarget.id] = e.detail.value } })
Q:微信小程序支持fetch或者promise吗"htmlcode">
Q:wx.uploadFile在手机上返回http码403。 A:安卓的微信升级到6.5.2及其以上版本。 Q:小程序SVG支持吗"htmlcode">
在成功方法里面如果要进行 A: Q:picker 组件中的文字大小是否支持修改? A:不支持修改。 Q:tabBar的图片在android和ios上面大小差异太大。 A:这是android微信客户端旧版本的bug, 请下载最新版本的 6.5.3 客户端 Q:tabbar 页面返回问题。非首页的tabbar 页面 点击左上角返回箭头时如何返回到小程序首页? 现在是直接退出小程序了 A:创建新页面时用 navigateTo 才会新建新页面,同时保留旧页面,如果用 redirectTo 是在当前页面内跳转。 Q:问下 wx.request() 怎么设置成同步。 A:reqeust是发起网络请求。没有同步接口。 Q:最新mac版工具不可用,进来就出现获取appservice 失败。 A:工具设置中选择直接链接网络 。或者 系统中的代理软件设置工具直接链接网络。 Q:真机 view overflow-y下滑会很卡。 A:父层需要 总结 以上就是干货分享的主要内容,需要提醒的是,小程序本身还在不断调整、修改、完善之中,对陆续发现的BUG,也需要进行相应的修复。关心小程序开发的朋友请关注我们,获取最新的小程序开发干货。希望本文的内容对大家的学习或者工作能带来一定的帮助。
wx.request({
....
method: "POST",
header: {
"content-type": "application/x-www-form-urlencoded"
},
...
})
complete: function (res) {
// complete
wx.hideToast();
}
showToast
的时候感觉无效,并没有弹出提示框。
success
回调调用是在 complete
之前的,如果在 success showToast
,下一步 complete hideToast
就会被冲掉 showToast
。
position:relative;
加了之后就不卡了。
下一篇:用nodejs搭建websocket服务器