小程序推送用戶消息,能夠模板建立一個form表單(最好用系統自帶的button)vue
<form @submit="handlePush" report-submit='true'>
<button formType="submit">推送消息</button>
</form>
複製代碼
小程序的formId須要儘量的在用戶交互比較頻繁的操做點上面加好埋點,因此就會在頁面的多個地方加form。以前看網上的作法上有一種是在一個button上循環嵌套n個form表格,當用戶點擊一次以後就能夠一次性拿到這n個formId值。實際上這種作法目前好像並不湊效,應該被微信和諧了,你會發現嵌套再多層最終拿到的formId值都是同樣的,因此嵌套form的做用就不大了。小程序
另外,在小程序的主入口頁,由於這裏是uni-app開發,app.vue爲主入口,要拿取formId值的話首先確定會想到在這裏拿formId,這樣就一勞永逸了。一般作法就是隱藏一個form表單,而後在生命週期裏trigger表單提交事件。但實際是微信不支持更不建議dom操做...bash
綜上,仍是老老實實的多加幾個點吧。固然,偷懶仍是要偷的,加個minxins吧。微信
/** form-id-mixins.js **/
export default {
methods: {
getFormIdData(formId, type = 1) {
// 加type參數是爲了有效區分都爲同一類型的formId
const params = {
formId,
type
}
// 傳值給後臺的API
Api.getFormId(params)
.then(res => {
console.log('success')
})
},
}
}
複製代碼
引用就簡單了...app
import mixin from '@/form-id-mixins.js'
export default {
mixins: [mixin],
methods: {
handlePush(e) {
this.getFormIdData(e.detail.formId)
}
}
}
複製代碼