知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
入坑微信小程序(項(xiàng)目搭建)下
發(fā)表時(shí)間:2021-3-31
發(fā)布人:葵宇科技
瀏覽次數(shù):55
關(guān)于 wx.getLocation
首次 執(zhí)行 wx.getLocation 小程序?qū)⒆詣?dòng)調(diào)啟如下 dialog:
請(qǐng)注意是 首次 !無(wú)論用戶選擇“確定”或是“取消”,再次進(jìn)入“更美測(cè)試”均不會(huì)被詢問(wèn)是否開啟定位(調(diào)用 100 次 wx.getLocation 也無(wú)濟(jì)于事)。除非用戶手動(dòng)清理微信緩存、更新微信、切換賬號(hào)...
各種緩存:
存在上述問(wèn)題的 API 絕不止 wx.getLocation 例如 wx.login,遺憾的是,小程序并未開放清理緩存的接口。但可通過(guò) wx.openSetting 再次請(qǐng)求用戶開啟授權(quán):
關(guān)于 wx.reportAnalytics
小程序數(shù)據(jù)分析可通過(guò)填寫配置上報(bào)、API 上報(bào):
對(duì)于填寫配置上報(bào),需提交觸發(fā)動(dòng)作、觸發(fā)頁(yè)面、觸發(fā)元素、埋點(diǎn)數(shù)據(jù)等。但埋點(diǎn)數(shù)據(jù)需從 page data 中獲取,看看官方文檔是怎么曰的:
OMG...需要在 page data 內(nèi)維護(hù)埋點(diǎn)狀態(tài),當(dāng)埋點(diǎn)量較大時(shí)上報(bào)數(shù)據(jù)的復(fù)雜度可想而知。我曾傻傻的認(rèn)為 data 字段值等同 dataset 值:
<text
wx:for="{{ areas }}"
data-id="{{ item.id }}"
data-name="{{ item.name }}"
data-idx="{{ index }}"
bindtap="tapItem">{{ item.name }}</text>
未曾想竟為 page 實(shí)例中的 data 值:
Page({
data: {},
onLoad: function () {},
onReady: function () {}
});
如此看來(lái) API 上報(bào)更簡(jiǎn)單,為觸發(fā)元素 dataset 埋點(diǎn)數(shù)據(jù)并調(diào)用 wx.reportAnalytics 傳入?yún)?shù):
<text
wx:for="{{ orders }}"
data-id="{{ item.id }}"
data-name="{{ item.name }}"
data-type="order"
bindtap="triggerSelected">{{ item.name }}</text>
triggerSelected (e) {
var dataset = e.target.dataset;
var id = dataset.id;
var name = dataset.name;
var type = dataset.type;
wx.reportAnalytics('click_fliter_item', {
item_type: type,
item_id: id,
item_name: name
});
}
關(guān)于 rpx
rpx 在不同設(shè)備被小程序換算為 px 時(shí)能產(chǎn)生各種 bug,當(dāng)設(shè)備寬度除不盡 750 時(shí)結(jié)果值精確至哪一位呢(額...bug 產(chǎn)生原因本人猜的),看看換算表:
舉個(gè)例子:
<view class="fliter-bar" style="top: {{ top }}rpx;"></view>
<view class="fliter-wrap" style="top: {{ top + 84 }}rpx;"></view>
問(wèn)題一:當(dāng) top = 0 時(shí),0rpx 被換算為 0.5px 也是厲害~
解決方案:
<view class="fliter-bar" style="top: {{ top ? (top + 'rpx') : 0 }};"></view>
問(wèn)題二:當(dāng) fliter-bar 高度為 84rpx,理論上緊貼的 fliter-bar 與 fliter-wrap 在部分設(shè)備上也不緊貼...
關(guān)于 setData
假如你想在 this.setData 的 key 中傳入變量,下述寫法報(bào)錯(cuò):
triggerSelected (e) {
var dataset = e.target.dataset;
var id = dataset.id;
var name = dataset.name;
var type = dataset.type;
this.setData({
selected[type]: {
id: id,
name: name
}
});
}
且 this.setData 不支持模板字符串形式的 key,下述寫法也報(bào)錯(cuò):
triggerSelected (e) {
var dataset = e.target.dataset;
var id = dataset.id;
var name = dataset.name;
var type = dataset.type;
this.setData({
`selected.${type}`: {
id: id,
name: name
}
});
}
可將 selected 存入變量,直接操作 selected 變量后再 this.setData:
triggerSelected (e) {
var dataset = e.target.dataset;
var id = dataset.id;
var name = dataset.name;
var type = dataset.type;
var selected = this.data.selected;
selected[type] = {
id: id,
name: name
};
this.setData({
selected: selected
});
}
檢測(cè) page data 內(nèi) selected 值與預(yù)期的一致,但當(dāng) selected 與視圖渲染相關(guān)時(shí),意想不到的情況發(fā)生了...假定我通過(guò) selected 的某一屬性值控制元素 class:
<text
class="{{ selected.order.id == item.id ? 'active' : '' }}"
wx:for="{{ orders }}"
data-id="{{ item.id }}"
data-name="{{ item.name }}"
data-type="order"
bindtap="triggerSelected">{{ item.name }}</text>
當(dāng)元素被點(diǎn)擊時(shí)其 class 被賦值 active 使之呈現(xiàn)綠色:
而后我點(diǎn)擊了另一與之前被點(diǎn)擊元素 type 不同的元素,理論上不應(yīng)影響第一次被點(diǎn)擊元素的狀態(tài)(selected.type2 變化不影響 selected.type1),然而:
active 仍在綠色卻不見了,這 bug 也是醉了,我不得不寫點(diǎn)爛代碼了(通過(guò) switch case 一一處理):
triggerSelected (e) {
var dataset = e.target.dataset;
var id = dataset.id;
var name = dataset.name;
var type = dataset.type;
var selected = this.data.selected;
switch (type) {
case 'area':
this.setData({
'selected.area': {
id: id,
name: name
}
});
break;
case 'tag':
this.setData({
'selected.tag': {
id: id,
name: name
}
});
break;
case 'order':
this.setData({
'selected.order': {
id: id,
name: name
}
});
break;
}
}
未完待續(xù),謝謝關(guān)注~
作者:呆戀小喵
我的后花園:https://sunmengyuan.github.io...
我的 github:https://github.com/sunmengyuan
原文鏈接:https://sunmengyuan.github.io...
相關(guān)案例查看更多
相關(guān)閱讀
- web學(xué)習(xí)路線
- 網(wǎng)站建設(shè)費(fèi)用
- 云南小程序開發(fā)公司
- 昆明做網(wǎng)站建設(shè)的公司排名
- 國(guó)內(nèi)知名網(wǎng)站建設(shè)公司排名
- 汽車報(bào)廢系統(tǒng)
- 海報(bào)插件
- 網(wǎng)站開發(fā)公司哪家好
- 昆明小程序開發(fā)
- 云南網(wǎng)站建設(shè)開發(fā)
- 全國(guó)前十名小程序開發(fā)公司
- web前端
- 云南小程序開發(fā)制作
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 快排推廣
- 云南網(wǎng)站建設(shè)快速優(yōu)化
- 云南小程序被騙
- 云南網(wǎng)站建設(shè)方法
- typescript
- 貴州小程序開發(fā)
- 網(wǎng)絡(luò)公司哪家好
- 汽車報(bào)廢回收
- 云南網(wǎng)站建設(shè)列表網(wǎng)
- 定制小程序開發(fā)
- 小程序公司
- 百度自然排名
- 云南網(wǎng)站建設(shè)方案 doc
- 云南軟件設(shè)計(jì)
- 報(bào)廢車管理系統(tǒng)
- 楚雄網(wǎng)站建設(shè)公司