ő(yng)̖(ho)_l(f)̳ҕlԔ
ő(yng)̖(ho)(С(yng)̖(ho)·Q)Kځ!
Ŀǰ߀̎ڃ(ni)y(c)AΣֻՈ(qng)˲I(y)cy(c)شҶP(gun)đ(yng)̖(ho)KΑB(ti)ʲô?ӌһ(g)(w)̖(ho)ɞ顸С?
҂r(sh)һ(jin)εĵߵČ(sh)ʾһ_l(f)^̰ɡ(˾(xing)Ŀ߀ܷaͽ؈D߅Ӱ߅͵͵oҌ̡̳xƬСF(tun)(du)ṩķ(w)̖(ho)(dng)@(g)g(sh)ԲĽ̳̾áƬСĹ̖(ho)L(dng)°l(f)😄)
OKұM쿴@ݽ̳̣עҪҹ!_ʼ£ϣһܰl(f)һƪ̳!ӛ_ʼ!׃!
_ʼ_l(f)(yng)̖(ho)֮ǰȿٷġС̳̰!((ni)݁ŹٷġС_l(f)ָ)

ęnһ(chung)һ(g)С֙C(j)w(yn)ԓСČ(sh)HЧ@(g)С퓌(hu)@ʾgӭZԼ(dng)ǰÑ^c(din)^_в鿴(dng)ǰСĆ(dng)־
1. @ȡС AppID
ȣ҂Ҫһ(g)̖(ho)ܿԓęn҂(yng)(dng)ѽ(jng)Ո(qng)ㄓ(chung)һ(g)̖(ho)עⲻֱʹ÷(w)̖(ho)ӆ̖(ho) AppID ṩĎ̖(ho)䛾ͿھW(wng)վġO(sh)á-_l(f)O(sh)áУ鿴С AppID ˡ
ע⣺҂ע(c)r(sh)ĹT̖(ho)֙C(j)w(yn)ԓСô҂߀Ҫ_l(f)ߡڡÑ - _l(f)ߡģKҪw(yn)ԓС̖(ho)̳ĬJ(rn)ע(c)̖(ho)w(yn)ʹùT̖(ho)
2. (chung)(xing)Ŀ
҂Ҫͨ^_l(f)߹ߣС(chung)ʹa
_l(f)߹߰bɺ_ʹŒߴa䛡x(chung)(xing)Ŀī@ȡ AppIDO(sh)һ(g)(xing)ĿQ(СQ)硸ҵĵһ(g)(xing)Ŀxһ(g)صļAa惦(ch)Ŀ䛣c(din)½(xing)ĿͿˡ
鷽W(xu)˽СĻaY(ji)(gu)ڄ(chung)^УxıļAǂ(g)ļA_l(f)߹ߕ(hu)ʾǷҪ?jing)?chung)һ(g) quick start (xing)Ŀxǡ_l(f)߹ߕ(hu)҂?c)_l(f)Ŀһ(g)(jin)ε demo
(xing)Ŀ(chung)ɹ҂Ϳc(din)ԓ(xing)ĿM(jn)벢_l(f)߹߽棬c(din)(c)(do)ڡԲ鿴;҂Ĵaڡ{(dio)ԇԜy(c)ԇaģMСſ͑Чڡ(xing)Ŀl(f)͵֙C(j)A(y)[(sh)HЧ
3. a
c(din)_l(f)߹(c)(do)ġ҂Կ@(g)(xing)Ŀѽ(jng)ʼһЩ(jin)εĴaļP(gun)IҲDZزٵģ app.jsapp.jsonapp.wxss @(g)У.js Y_ļ.json Yļļ.wxss YǘʽļС(hu)xȡ@ЩļС?q)?/span>
҂(jin)˽@(g)ļĹܣԼ^_l(f)ԼС
app.js С_a҂@(g)ļбO(jin) ̎Сں(sh)ȫ׃{(dio) MINA ṩS API籾ͬ惦(ch)ͬxȡ?ci)?sh)(j)
//app.jsApp({
onLaunch function () {
// {(dio) API ıؾЫ@ȡ(sh)(j) var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs' logs)
}
getUserInfofunction(cb){
var that = this;
if(this.globalData.userInfo){
typeof cb == "function" && cb(this.globalData.userInfo)
}else{
// {(dio)õ䛽ӿ wx.login({
success function () {
wx.getUserInfo({
success function (res) {
that.globalData.userInfo = res.userInfo;
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
});
}
}
globalData{
userInfonull }
})
app.json nj(du)(g)Сȫá҂@(g)ļСЩMɣСĴ ɫÌ(do)lʽĬJ(rn)(bio)}עԓļκעጡ
/**app.json*/{
"pages"[
"pages/index/index"
"pages/logs/logs" ]
"window"{
"backgroundTextStyle""light"
"navigationBarBackgroundColor" "#fff"
"navigationBarTitleText" "WeChat"
"navigationBarTextStyle""black" }
}
app.wxss (g)СĹʽ҂M class ֱʹ app.wxss ĘʽҎ(gu)t
/**app.wxss**/.container {
height 100%;
display flex;
flex-direction column;
align-items center;
justify-content space-between;
padding 200rpx 0;
box-sizing border-box;
}
3. (chung)
@(g)̳҂Ѓɂ(g)棬index logs 棬gӭ퓺С(dng)־չʾ퓣 pages Ŀ¡Сеÿһ(g)ġ· + Ҫ app.json pages У pages еĵһ(g)С퓡
ÿһ(g)Сͬ·ͬĂ(g)ͬYļĽMɣ磺index.jsindex.wxmlindex.wxssindex.json.js Yļ_ļ.json Yļļ.wxss Yǘʽļ.wxml YļY(ji)(gu)ļ
index.wxml ĽY(ji)(gu)ļ
<!--index.wxml--><view class="container"> <view bindtap="bindViewTap" class="userinfo"> <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image> <text class="userinfo-nickname">{{userInfo.nickName}}</text> </view> <view class="usermotto"> <text class="user-motto">{{motto}}</text> </view></view>
ʹ <view/><image/><text/> Y(ji)(gu)(sh)(j)ͽ̎(sh)
index.js _ļ@(g)ļ҂ԱO(jin) ̎ں(sh)@ȡС?q)̎?sh)(j)푑(yng)潻¼ȡ
//index.js// @ȡ(yng)Ì(sh)var app = getApp()
Page({
data {
motto 'Hello World'
userInfo {}
}
// ¼̎(sh) bindViewTap function() {
wx.navigateTo({
url '../logs/logs' })
}
onLoad function () {
console.log('onLoad')
var that = this // {(dio)Ñ(yng)Ì(sh)ķ@ȡȫ?jn)?sh)(j) app.getUserInfo(function(userInfo){
// (sh)(j) that.setData({
userInfouserInfo
})
})
}
})
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;
}
ĘʽǷDZҪġ(dng)ʽr(sh)ĘʽеĘʽҎ(gu)t(hu)ӯBw app.wxss еĘʽҎ(gu)tָĘʽҲĽY(ji)(gu)ļֱʹ app.wxss ָĘʽҎ(gu)t
index.json ļ
ļǷDZҪġ(dng)ļr(sh)(xing)ԓ(hu)w app.json window ͬ(xing)]ָļtԓֱʹ app.json еĬJ(rn)á
logs Y(ji)(gu)
<!--logs.wxml--><view class="container log-list"> <block wxfor-items="{{logs}}" wxfor-item="log"> <text class="log-item">{{index + 1}}. {{log}}</text> </block></view>
logs ʹ <block/> Ƙ(bio)Ma <block/> ʹ wxfor-items logs (sh)(j) logs (sh)(j)ѭh(hun)չ_(ji)c(din)
//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))
})
})
}
})
\(yn)нY(ji)£
4. ֙C(j)A(y)[
_l(f)߹(c)ˆΙx(xing)Ŀc(din)A(y)[ߴaſ͑w(yn)
ĿǰA(y)[ςПo(sh)F(xin)ҪȴŹٷһ¡
ҊŹٷo_l(f)ָ߀dz(jin)Σܶ༚(x)(ji)aܶ]_չʾԽ͵չʾ(sh)ĕr(sh)!_l(f)̳ʽ_ʼ!
һ£(zhn)乤
Ü(zhn)乤Ҫ_l(f)һ(g)ő(yng)̖(ho)ҪǰŵĹٷW(wng)վd_l(f)߹ߡ
1. d_l(f)߹ߣ_(hu)ԓ棺
2. c(din)½ web+(xing)ĿSF(xin)®棺
3. ԓ(ni)ĸ(xing)(ni)Ҫע——
AppIDչٷጁ
Appname (xing)ĿļAQ㌢顸ABCt֮ȫ(xing)Ŀ(ni)ݾڡ/ABC/…Ŀ¡
_l(f)Ŀ䛣(xing)ĿڱصĿ䛡
עٴΏ(qing){(dio)͈F(tun)(du)ɆTͬ_l(f)ԓ(xing)ĿthゃʹͬӵĿQĿ䛣Դ_f(xi)ͬ_l(f)Ľy(tng)һԡ֮ǰ(xing)Ŀt(do)^cσ(ni)ݽƣ٘
4. (zhn)乤ȫɺc(din)½(xing)Ŀoc(din)_
5. ψDʾ˿̣_l(f)߹ѽ(jng)Ԅ(dng)(gu)һ(g)ʼ demo (xing)Ŀԓ(xing)Ŀ(ni)һ(g)ő(yng)(xing)Ŀ߂Ļ(ni)ݺͿܽY(ji)(gu)c(din)(xing)ĿQ(Dмcards)M(jn)ԓ(xing)Ŀܿ(g)(xing)ĿĻܘ(gu)ˣ
ڶ£(xing)Ŀ(gu)
ĿǰÑȺwdzƳ̖(ho)Ժ𱬳̶ȴҶõҲͬƄ(dng) h5 ĸٰl(f)չS̖(ho)I(y)(w)ԽԽ(f)s(yng)̖(ho)F(xin)ڵĵҲǡ̎҂F(tun)(du)wһɴęnl(f)F(xin)ṩo_l(f)ߵķʽҲڰl(f)ȫĸ׃IJ DOM D(zhun)(sh)(j)ṩһ(g)^ߌ(sh)F(xin)ܶ h5 ڹ̖(ho)y(sh)F(xin)Ĺܣc(din) hybrid _l(f)ͬ hybrid _l(f)ķʽǣ_ŵĽӿڸ(yn)֔(jn)Y(ji)(gu)횲ṩo҂ĽMⲿĿܺͲ@ʹϣ_l(f)ȫÓx DOM_l(f)˼D(zhun)׃ܴ
£ĺĹܷdzҪ˽(g)\(yn)̡
ڣ
index.js棺
_l(f)߹ Console Կ
console Կ App Launch-->App Show-->onload-->onShow-->onReady
(g) app Ć(dng)c@ʾapp Ć(dng) app.js ãM(jn)뵽(g)ļd@ʾȵȡ
@̎ܶ|ˣd֮ĶԌ(sh)F(xin)ȵȡ
·ɣ
·(xing)Ŀ_l(f)һֱǂ(g)c(din)@䌍(sh)Ō(du)·ɵĽB٣Ҋ·ɷ潛(jng)^ܺõķbҲṩ(g)D(zhun)
wx.navigateTo(OBJECT)(dng)ǰ棬D(zhun)(yng)Ã(ni)ij(g)棬ʹwx.navigateBackԷصԭ档
wx.redirectTo(OBJECT)P(gun)](dng)ǰ棬D(zhun)(yng)Ã(ni)ij(g)档
wx.navigateBack()P(gun)](dng)ǰ棬ǰһ档
@(g)ʹ·ɷŷbĺܺã_l(f)߸ȥ·ɣܶ·ɷúܷ
M
˴ڽMṩҲǷdzȫ棬ϝM(xing)Ŀʶ_l(f)ٶȷdz죬_l(f)ǰJ(rn)g[״Σ_l(f)Чʕ(hu)ܺá
κⲿԼϟoʹãԭ js Ҳyʹã?yn)ǰ҂?js Ҳȫһ dom ʽڣő(yng)̖(ho)˴εļܘ(gu)DzSκ domBǰ҂(x)TʹõĄ(dng)B(ti)O(sh)õrem.jsҲDzֵ֧ġ
˴߀ṩ WebSocketͿֱ죬_l(f)Ŀgdz
̖(ho)(du)҂l(f)F(xin)_l(f)(yng)̖(ho)MY(ji)(gu)ӻ´ꑿdzM@ϲIJʵҁl(f)F(xin)
_ʼһЩ(jin)εĴa!
1. ҵ(xing)ĿļA(do)ľ档@ʹ Sublime Text Ը(j)Լ_l(f)(x)TxԼϲgľ
2. Ҫ(j)Լ(xing)Ŀ(ni){(dio)(xing)ĿY(ji)(gu)ڷ(xing)ĿУcard_courseĿҪˡtabBarԼԓ(yng)õһЩļ
3. ʾ(xing)ĿġtabBar傀(g)ˆΰo
4. ҵapp.jsonļÁ@(g)傀(g)ˆΡڴaҵ”tabBar”
Ը(j)(sh)H(xing)ĿģУ
ColorǵײwɫselectedColorГQԓɫborderStyleГQˆһlɫbackgroundColorǵײˆΙڱɫ^hһһ{(dio)ԇ鿴Чӡ
“list”µĴaηãSġ
”pagePath”֮ļ(ni).wxmlY[ˣ@_l(f)aԻһc(din)——㹝(ji)saĕr(sh)golļY
”iconPath”δ@@ʾĈD(bio)·@ɂ(g)·ֱǾW(wng)j(lu)D(bio)
”selectedIconPath”鮔(dng)ǰ@ʾD(bio)·ȥȥ֮(hu)ĬJ(rn)@ʾ顸”iconPath”ĈD(bio)
”Text”(bio)}Ҳȥȥ֮@ʾD(bio)ֻȥһ(g)ԓλÕ(hu)ռá
ע⣺ŵĵײˆ֧(傀(g) icons)O(sh)Ӌ(j)ő(yng)õ UI ͻܘ(gu)r(sh)ҪA(y)ȿ]òˆΙڵŲ
5. (j)ϴaҎ(gu)tʾ(xing)ĿĻܘ(gu)ㅢ
6. Jsonļúúcard_courseĻY(ji)(gu)ψDʾҪӼԕr(sh)hȱٵӼtҪ(dng)½hӼr(sh)ӛ혎zһ¡app.jsonP(gun)(ni)Ƿѽ(jng)һh
ע⣺҂(g)˽h½һ(g)wxmlļͬr(sh)ь(du)(yng)ġjs͡wxssļһ½ã?yn)ő?yng)̖(ho)c(din)ǽһ(g)wxmlļr(sh)(hu)ͬr(sh)ͬ(j)Ŀҵͬļġjs͡wxssļԡjsļ輰r(sh)ڡapp.jsonA(y)úá
wxmlr(sh)(j)ő(yng)̖(ho)ṩĽӿھaɣ־ǰġdiv҂F(xin)ھáviewɡҪӼr(sh)Ը(j)ṩĽӿx
ʹáclassO(sh)Øʽid@]ʲô̎Ҫ(sh)(j)dom
7. ʾ(xing)Ŀ퓵ġwxmlaĈDоͿԿ(sh)F(xin)һ(g)adz١
8. WxssļĘʽļҲֱ挑ʽʾвõ뷽ʽ
9. ĴaˢһΣԿδO(sh)ġview(bio)ֱ׃˷ɫ
ע⣺ġwxml͡wxssµă(ni)ݺֱ F5 ˢ¾ֱӿЧġjstc(din)؆oܿЧ
10. ⣬ʽڡapp.wxssֱá
11. JsļҪڡapp.jsonļġ”page”A(y)úá(xing)ĿY(ji)(gu)ʾ(xing)Ŀеġindexͬ(j)Ŀ½Ă(g)ļw£
(jng)^ϲEе傀(g)ײˆξȫꮅˡ
һƪ:һƪɶվ˾ļҺ-ٶ]
YӍ

