2020-11-17 21:38
在语言方面,小程序看似重新定义了一套标准。但实际上,它们与「前端三件套」——HTML、CSS 和 Java——差不太多。
HTML 与 WXML:两者差异比较大,如果之前没有接触过 Android 开发,可能会觉得有些头疼。事实上,WXML 更像是 Android 开发中的界面 XML 描述文件,适合于程序界面的构建;而 HTML 则倾向于文章的展示(这与 HTML 的历史有关),以及互联网页面的构建。
JS 文件:小程序的 JS 文件与前端开发使用的 JS 几乎没有区别,只是小程序的 JS 新增了微信的一些 API 接口,并去除了一些不必要的功能(如 DOM)。
在语言上,小程序完全向学习成本最低的前端开发看齐,但这不代表所有前端开发者都能无缝迁移。
HTML 与 WXML 两种文件的构建思想差异较大,如果之前只接触过前端开发,需要一点时间才能适应 WXML 的编写方法。
虽然小程序使用的是前端语言,但不代表可以继续沿用前端的开发思想进行开发。小程序对前端开发的要求从「构建界面」升级成「开发完整应用」,前端开发需要在意识上进行转变。
WXML 最大的特点是以视图(view)的方式串联界面元素,并通过程序逻辑(AppService),将信息更新实时传递至视图层。
view 类似于 HTML 中的 div 元素。在构建的时候,view 可以被多级嵌套,view 内可以放置任意视觉元素。
需要注意的是,元素一旦超出屏幕之外,用户就无法看到了,这与 HTML 有较大不同。
如果希望界面是一个可以自由滚动的界面(例如列表等),可以使用 scroll-view 视图,在 WXSS 中将其大小调整为整个屏幕,并设置 scroll-y(上下滚动)或 scroll-x(左右滚动)为 true。
小程序中不能直接使用 DOM 控制 WXML 元素。如果需要进行数据更新,就得使用 WXML 提供的数据绑定及元素渲染方法。
还有一点需要注意的是:小程序的栅格排版系统使用的是 Flex 布局,它是 W3C 在 2009 年提出的一种排版标准。
绑定的数据除了在加载的时候可以更新,也可以在 JS 主程序中以函数形式进行更新,更新同样可以反映到界面上被绑定的数据中。
条件渲染适用于有意外情况提示的页面(如无法加载列表或详情时,做出提示等等)。
它的渲染带有触发条件,即符合条件时渲染这个页面,否则忽略或渲染另一段代码。
两个花括号所包含的判断条件中的变量于主程序 JS 代码中的 data 中声明。
若需要在界面中构建一个列表,可以使用 WXML 中的循环渲染,将同一元素渲染代码进行集合。循环的数据可以通过数组的方式写入 data 中供 WXML 访问。
可以将多个模板写入至同一文件,并使用 import 在其他文件中进行引用。
WXSS 与 CSS 代码一样,可以直接使用选择器选择元素。在 WXML 中也可以直接定义元素的 id 和 class 以便于在 WXSS 文件中进行样式定义。
由于微信使用的不是 HTML,所以也 不能通过添加超链接(a 元素)的方式来监测用户的点击事件。
对于需要监听点击事件的元素,应该在 WXML 中使用 bindtap 属性或 catchtap 属性进行绑定。
其他 API 中也有其他相应的事件,这些事件可以在微信小程序的官方文档中查阅到。
当需要在小程序的页面间进行跳转时,应该使用 wx.navigateTo() 方式。
需要注意的是,有关于页面层级跳转,微信将层级跳转限制到了五层。在开发时需要注意是否超过了相应限制。
一种是直接的 HTTP 连接请求,请求后直接返回结果,连接结束。另一种是 Socket 持续性连接,当一方主动关闭连接时,连接结束。
除了以上两种收发纯文本的连接方式,微信还提供了一个文件收发接口。 小程序中录制的语音以及选择的照片都需要这个方式来进行上传。
通过小程序访问网络需要服务器端必须支持 HTTPS 安全连接,且端口号必须为 443。
若需在小程序中播放多媒体(包括音视频)或进行数据存储,不能使用 HTML 5 中所提供的标准, 必须使用微信提供的小程序多媒体播放控制接口及存储接口等。
音频播放提供了播放、暂停和停止播放三种接口,不提供跳转至某个播放时间点的功能,也不能获取目前的播放进度。
小程序提供照片和视频数据交换接口。通过这个接口,小程序可以访问用户选定或拍摄的照片与视频。
通过音频录制和视频照片接口获得的多媒体信息是临时的,需要通过小程序存储文件接口对文件进行永久保存。
对于文本数据,小程序也提供了存储这类数据的接口。从诸如 Android 或其他 app 平台转向的开发者需要注意的是,小程序不提供数据库式的本地数据保存形式,而是通过 「字段 - 值」的一对一形式进行保存。
但需要注意: 这些数据只能主动获取,不能通过这些数值变化的回调实时获取。
小程序提供推送服务,可以随时向用户发送必要的通知。 但请注意,推送服务只能用于通知提醒,不能用于群发。
在小程序中,推送服务叫做「模板消息」(之前有开发过服务号的开发者应该比较熟悉)。开发者需要在微信小程序后台登记新的模板推送消息(比如:购买成功通知等)并审核通过后,才能在小程序中使用模板消息推送服务。具体审核标准建议参考相应文档。
模板消息审核通过后,开发者需要先向微信服务器获取 Access Token,随后将该值、模板编号和模板中的动态变量(比如:订单号、价格等)提交给微信,由微信向用户推送通知。
首先,小程序要通过微信登录的接口,让用户授权登录。之后,小程序就可以展示并使用用户信息了。
在使用微信登录的时候需要注意, 消息需要经过签名确认其完整性之后,方能保证数据未经篡改。
小程序中也可以使用微信支付。需要注意的是在发送支付请求时,需要在发送的消息中添加签名,以确认消息完整性。
今天学习了一下微信小程序的入门开发,在使用网络请求时,发现根据微信官方的API的方法进行操作出现Invalid request 400错误,到底怎么回事呢?
背景:由于微信官方修改了 getUserInfo、authorize 接口,无法弹出授权窗口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发,这样就需要我们加一个授权页面去搞定了。
前提:微信授权登录仅适用于使用微信用户信息的用户,如果自己的项目有完善的用户信息(一套式开发项目),可不使用微信用户信息;如果仅为微信小程序,则要授权、获取用户信息。
实现思路:自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过 button 组件去触发 getUserInof 接口。在用户进入微 信小程序的时候,判断用户是否授权了,如果没有授权的话就显示“授权页面”,让用户去执行授权的操作。如果已经授了,则直接跳过这个页面,进入首页。
以上代码可以解决新版小程序授权登录问题,可能有部分方法需要使用app.js和util.js,下面附上部分代码:
2、获取微信运动加密数据(如果开通了微信运动权限的话) encryptedData,iv
注:这个地址有多种编程语言解密encryptedData数据的示例代码,
”近日,不少中小企业主反映,个别公司自称“腾讯公司合作方或授权方”,通过在酒店召开宣讲会,推广所谓的“
,进而收取数万元的费用,“套路有点‘野豁豁’”。 晨报记者调查发现,有3家所谓...
2019独角兽企业重金招聘Python工程师标准 ...
先给大家看效果图,如下: 一、开通七牛云对象存储服务(免费的) 官网:... 二、获取AccessKey和SecretKey密钥,在“个人中心”→ “密钥管理”中 ...三、thinkphp后端:生成七牛云上传凭证Token ...
制作工具。不懂技术不懂编程的人,一定会爱上牛刀云这款工具的。关键词优化。 优点 1.提供了大量各行各业模板
。 土豪老板说:我有阿里的运营、百度的推广、腾讯的产品经理,就少了一个程序员? 这个程序员在哪里? 这个程序员就在那里。 --但没有人去感觉他...
外卖,这样的“低技术含量”工作,很难被互联网公司看上,...换一个角度,腾讯
”,其实也是一个企业版的快速建站服务。 而诸如华夏互联这样“坚持做互联网鲁班”的企业也越来越少,大多的都
外卖,这样的“低技术含量”工作,很难被互联网公司看上,直到百度...换一个角度,腾讯
”,其实也是一个企业版的快速建站服务。 而诸如华夏互联这样“坚持做互联网鲁班”的企业也越来越...