微信小程序开发者交流群

admin

admin

发表于 2017-01-31 20:25:53

摘要:【干货】设计、开发、运营……微信小程序基础知识全解 (微信 小程序开发 - 微信 小程序外包开发-微信小程序 开发教程-微信 小程序开发者社区,尽在 www.mntuku.cn)

【干货】设计、开发、运营……微信小程序基础知识全解

导读:微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。本文较长,建议择需阅读。

介绍

  一、什么事小程序?

  小程序是一种不需要下载、安装即可使用的应用,它实现了触手可及的梦想,用户扫一扫或者搜一下就能打开应用,也实现了用完即走的理念,用户不用安装太多应用,应用随处可用,但又无须安装卸载。

  二、开放注册范围:

  企业、政府、媒体、其他组织

  三、主题信息及验证方式

  企业类型帐号可选择两种主体验证方式:

  方式一:需要用公司的对公账户向腾讯公司打款来验证主体身份。打款信息在提交主体信息后可以查看到。

  方式二:通过微信认证验证主体身份,需支付300元认证费。认证通过前,小程序部分功能暂无法使用。

  政府、媒体、其他组织类型帐号,必须通过微信认证验证主体身份。认证通过前,小程序部分功能暂无法使用。

  特别提醒:小程序主体信息一经提交后不可修改。

  四、完善小程序信息

  完成注册后,微信小程序信息完善步骤和开发可同步进行。

  选择对公打款的用户,完成汇款验证后,可以补充小程序名称信息,上传小程序头像,填写小程序介绍并选择服务范围。

  选择通过微信认证验证主体身份的用户,需先完成微信认证后,才可以补充小程序名称信息,上传小程序头像,填写小程序介绍并选择服务范围。

  五、开发前准备:

  1.绑定开发者

  登录微信公众平台小程序,进入用户身份- 开发者,新增绑定开发者。已认证的小程序可以绑定不多于20个开发者。未认证的小程序可以绑定不多于10个开发者。

  2.获取AppID

  进入“设置-开发设置”,获取AppID信息。

  3.阅读开发文档并下载开发者工具

  点击页面右上角文档-开发,详细阅读开发者文档并进入下载页面,下载开发者工具。

  六、客服系统

  为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通。

 

设计

  一、概要

  设计指南建立在充分尊重用户知情权与操作权的基础之上,旨在微信生态体系内,建立友好、高效、一致的用户体验,同时最大程度适应和支持不同需求,实现用户与小程序服务方的共赢。

  二、友好礼貌

  为了避免用户在微信中使用小程序服务时,注意力被周围复杂环境干扰,小程序在设计时应该注意减少无关的设计元素对用户目标的干扰,礼貌地向用户展示程序提供的服务,友好地引导用户进行操作。

  1.重点突出

  每个页面都应有明确的重点,以便于用户每进入一个新页面的时候都能快速地理解页面内容。在确定了重点的前提下,应尽量避免页面上出现其它与用户的决策和操作无关的干扰因素。

  2.流程明确

  为了让用户顺畅地使用页面,在用户进行某一个操作流程时,应避免出现用户目标流程之外的内容而打断用户。

  三、清晰明确

  一旦用户进入我们的小程序页面,我们就有责任和义务清晰明确地告知用户身在何处、又可以往何处去,确保用户在页面中游刃有余地穿梭而不迷路,这样才能为用户提供安全且愉悦的使用体验。

  1.导航明确,来去自如

  导航是确保用户在网页中浏览跳转时不迷路的最关键因素。导航需要告诉用户,当前在哪,可以去哪,如何回去等问题。首先在微信系统内的所有小程序的全部页面,均会自带有微信提供的导航栏,统一解决当前在哪,如何回去的问题。在微信层级导航保持体验一致,有助于用户在微信内形成统一的体验和交互认知,无需在各小程序和其他微信页面的切换中新增学习成本或改变使用习惯。

  微信导航区(iOS)

  微信进入小程序的第一个页面,导航区通常只有一个操作——“返回”,即返回进入小程序前的微信页面。 进入小程序后的次级页面,导航区的操作为——“返回” 和“关闭”。 “返回”,即返回上一级小程序界面或微信界面。“关闭”,即在当前界面直接退出小程序,回到进入小程序前的微信页面。

  微信导航区(Android)

  导航区仅存在唯一操作——直接退出小程序,回到进入小程序前的微信或系统桌面,安卓手机自带的硬件返回键执行返回上一级页面的操作。

  2.减少等待,反馈及时

  页面的过长时间的等待会引起用户的不良情绪,使用微信小程序项目提供的技术已能很大程度缩短等待时间。即便如此,当不可避免的出现了加载和等待的时候,需要予以及时的反馈以舒缓用户等待的不良情绪。

  3.异常可控,有路可退

  在设计任何的任务和流程时,异常状态和流程往往容易被忽略,而这些异常场景往往是用户最为沮丧和需要帮助的时候,因此需要格外注意异常状态的设计,在出现异常时予以用户必要的状态提示,并告知解决方案,使其有路可退。

  要杜绝异常状态下,用户莫名其妙又无处可去,停滞在某一个页面的情况。上文中所提到的模态对话框和结果页面都可作为异常状态的提醒方式。除此之外,在表单页面中尤其是表单项较多的页面中,还应明确指出出错项目,以便用户修改。

  四、便捷优雅

  从PC时代的物理键盘鼠标到移动端时代手指,虽然输入设备极大精简,但是手指操作的准确性却大大不如键盘鼠标精确。为了适应这个变化,需要开发者在设计过程中充分利用手机特性,让用户便捷优雅的操控界面。

  1.减少输入

  由于手机键盘区域小且密集,输入困难的同时还易引起输入错误,因此在设计小程序页面时因尽量减少用户输入,利用现有接口或其他一些易于操作的选择控件来改善用户输入的体验。

  2.避免误操作

  因为在手机上我们通过手指触摸屏幕来操控界面,手指的点击精确度远不如鼠标,因此在设计页面上需点击的控件时,需要充分考虑到其热区面积,避免由于可点击区域过小或过于密集而造成误操作。当简单的将原本在电脑屏幕上使用的界面不做任何适配直接移植到手机上时,往往就容易出现这样的问题。由于手机屏幕分辨率各不相同,因此最适宜点击像素尺寸也不完全一致,但换算成物理尺寸后大致是在7mm-9mm之间。在微信提供的标准组件库中,各种控件元素均已考虑到了页面点击效果以及不同屏幕的适配,因此再次推荐使用或模仿标准控件尺寸进行设计。

  3.利用接口提升性能

  微信设计中心已推出了一套网页标准控件库,包括 sketch设计控件库 和 Photoshop设计控件库,后续还将完善小程序组件,这些控件都已充分考虑了移动端页面的特点,能够保证其在移动端页面上的可用性和操作性能; 同时微信开发团队也在不断完善和扩充微信小程序接口,并提供微信公共库,利用这些资源不但能够为用户提供更加快捷的服务,而且对页面性能的提高有极大作用,无形之中提升了用户体验。

  五、统一稳定

  除了以上所提到的种种原则,建议接入微信的小程序还应该时刻注意不同页面间的统一性和延续性,在不同的页面尽量使用一致的控件和交互方式。

  统一的页面体验和有延续性的界面元素都将帮助用最少的学习成本达成使用目标,减轻页面跳动所造成的不适感。正因如此,小程序可根据需要使用微信提供的标准控件,以达到统一稳定的目的。

  六、视觉规范

  1.字体规范

  微信内字体的使用与所运行的系统字体保持一致,常用字号为20, 18, 17, 16,14 13, 11(pt),使用场景具体如下:

  字体颜色:

  主内容 Black 黑色,次要内容 Grey 灰色;时间戳与表单缺省值 Light 灰色;大段的说明内容而且属于主要内容用 Semi 黑。

  蓝色为链接用色,绿色为完成字样色,红色为出错用色 Press 与 Disable 状态分别降低透明度为20%与10%。

  2.列表视觉规范:

  3.表单输入视觉规范:

  4.按钮使用原则:

  5.图标使用原则:

开发

  一、框架

  小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。

  框架提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,可以让开发者可以方便的聚焦于数据与逻辑上。

  二、基础组件

  框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。

  三、API

  框架提供丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等。

  四、简易教程

  1.获取微信小程序的 AppID

  登录微信公众平台,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID 。

  注意:如果要以非管理员微信号在手机上体验该小程序,那么我们还需要操作“绑定开发者”。即在“用户身份”-“开发者”模块,绑定上需要体验该小程序的微信号。本教程默认注册帐号、体验都是使用管理员微信号。

  2.创建项目

  我们需要通过开发者工具,来完成小程序创建和代码编辑。

  开发者工具安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入上文获取到的 AppID ,设置一个本地项目的名称(非小程序名称),比如“我的第一个项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就可以了。

  为方便初学者了解微信小程序的基本代码结构,在创建过程中,如果选择的本地文件夹是个空文件夹,开发者工具会提示,是否需要创建一个 quick start 项目。选择“是”,开发者工具会帮助我们在开发目录里生成一个简单的 demo。

  项目创建成功后,我们就可以点击该项目,进入并看到完整的开发者工具界面,点击左侧导航,在“编辑”里可以查看和编辑我们的代码,在“调试”里可以测试代码并模拟小程序在微信客户端效果,在“项目”里可以发送到手机里预览实际效果。

  3.编写代码

  创建小程序实例:

  点击开发者工具左侧导航的“编辑”,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是 app.js、app.json、app.wxss 这三个。其中,.js后缀的是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件。微信小程序会读取这些文件,并生成小程序实例。

  下面我们简单了解这三个文件的功能,方便修改以及从头开发自己的微信小程序

  app.js是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用框架提供的丰富的 API,如本例的同步存储及同步读取本地数据。

//app.jsApp({onLaunch: function () { //调用API从本地缓存中获取数据var logs = wx.getStorageSync(‘logs’) || []logs.unshift(Date.now())wx.setStorageSync(‘logs’, logs)},getUserInfo:function(cb){ var that = this; if(this.globalData.userInfo){ typeof cb == “function” && cb(this.globalData.userInfo)}else{ //调用登录接口wx.login({success: function () {wx.getUserInfo({success: function (res) {that.globalData.userInfo = res.userInfo; typeof cb == “function” && cb(that.globalData.userInfo)}})}});}},globalData:{userInfo:null}})

  app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。

{ “pages”:[ “pages/index/index”, “pages/logs/logs”], “window”:{ “backgroundTextStyle”:”light”, “navigationBarBackgroundColor”: “#fff”, “navigationBarTitleText”: “WeChat”, “navigationBarTextStyle”:”black”}}

app.wxss 是整个小程序的公共样式表。

/**app.wxss**/.container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 200rpx 0; box-sizing: border-box;}

  创建页面

  在这个教程里,我们有两个页面,index 页面和 logs 页面,即欢迎页和小程序启动日志的展示页,他们都在 pages 目录下。微信小程序中的每一个页面的【路径+页面名】都需要写在 app.json 的 pages 中,且 pages 中的第一个页面是小程序的首页。

  每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。

  index.wxml 是页面的结构文件:

{{userInfo.nickName}}{{motto}}

  本例中使用了来搭建页面结构,绑定数据和交互处理函数。

  index.js 是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。

//index.js//获取应用实例var app = getApp()Page({data: {motto: ‘Hello World’,userInfo: {}}, //事件处理函数bindViewTap: function() {wx.navigateTo({url: ‘../logs/logs’})},onLoad: function () { console.log(‘onLoad’) var that = this//调用应用实例的方法获取全局数据app.getUserInfo(function(userInfo){ //更新数据that.setData({userInfo:userInfo})})}})

  index.wxss 是页面的样式表:

/**index.wxss**/.userinfo { display: flex; flex-direction: column; align-items: center;}.userinfo-avatar { width: 128rpx; height: 128rpx; margin: 20rpx; border-radius: 50%;}.userinfo-nickname { color: #aaa;}.usermotto { margin-top: 200px;}

  页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。

  index.json 是页面的配置文件:

  页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

  logs 的页面结构:

{{index + 1}}. {{log}}

  logs 页面使用 控制标签来组织代码,在 上使用 wx:for 绑定 logs 数据,并将 logs 数据循环展开节点。

//logs.jsvar util = require(‘../../utils/util.js’)Page({data: {logs: []},onLoad: function () { this.setData({logs: (wx.getStorageSync(‘logs’) || []).map(function (log) { return util.formatTime(new Date(log))})})}})

  4.手机预览

  开发者工具左侧菜单栏选择”项目”,点击”预览”,扫码后即可在微信客户端中体验。

  运营

  具体运营规范:

  使用微信小程序平台的服务,你必须阅读并遵守 《微信小程序平台服务条款》,以及腾讯为此制定的专项规则等。

  能力

  小程序七大能力解读:

线下扫码:用户可以在小程序中使用扫一扫。

对话分享:用户可以分享小程序或其中的任何一个页面给好友或群聊。

消息通知:商户可以发送模板消息给接受过服务的用户,用户可以在小程序内联系客服,支持文字和图片。

小程序切换:用户可以在使用小程序的过程中快速返回聊天。

历史列表:用户使用过的小程序会被放入列表,方便下次使用。

公众号关联:微信小程序可与公众号进行关联。

搜索查找:用户可直接根据名称或品牌搜索小程序。

  问答  

  1.小程序的入口在哪里?

  小程序在微信里是没有入口的,微信更多的是希望小程序的启动来自于扫二维码。

  2.有没有应用商店可以下载小程序?

  小程序不存在下载过程,因此没有小程序应用商店。

  3.小程序能不能推送消息?

  小程序不能推送消息,但是会提供比较有限的服务触达能力。

  4.小程序能不能分享到朋友圈?

  小程序不能分享到朋友圈,但是可以分享到聊天里面,可以分享到群里面。

  5.小程序和公众号之间是怎么样的一种关系?

  你在公众号里面可以看到这个公众号同一个企业还做了哪些小程序,或者你在一个小程序里面你也可以看到,做这个小程序的企业还做了哪些公众号,他们是可以互相跳的。(来源:人人都是产品经理 文/小明)

var first_sceen__time = (+new Date()); if ("" == 1 && document.getElementById(js_content)) document.getElementById(js_content).addEventListener("selectstart",function(e){ e.preventDefault(); }); (function(){ if (navigator.userAgent.indexOf("WindowsWechat") != -1){ var link = document.createElement(link); var head = document.getElementsByTagName(head)[0]; link.rel = stylesheet; link.type = text/css; link.href = "//res.wx.qq.com/mmbizwap/zh_CN/htmledition/style/page/appmsg/page_mp_article_improve_winwx31619e.css"; head.appendChild(link); } })();
163阅读 | 0评论
你的回应