1. 程式人生 > 其它 >微信小程式常見問題(三)

微信小程式常見問題(三)

知曉程式設計師,專注微信小程式開發的程式設計師!

一、獲取formId

相信使用過小程式的同學,多少都收到過小程式的通過訊息,如下:

這類通知訊息,是和好友訊息一樣展示在微信的聊天列表中,所以,點選率還是比較高的。想實現這種小程式的模板訊息,就必須要獲取使用者的formid才可以(如何發訊息,請仔細查閱小程式官方文件https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html)

我們來說一下如何獲取formId:

a、必須通過form元件提交才能獲取到formId;

b、給form元件設定report-submit="true"屬性;

c、給form元件新增bindsubmit事件繫結,攜帶 form 中的資料觸發 submit 事件,event.detail = {value : {'name': 'value'} , formId: ''};

d、必須使用者手動觸發提交表單,不能JS模擬提交,所以,頁面上必須要有提交按鈕;

看一下示例程式碼:

<form report-submit='true' bindsubmit='userSubmit'>
  <button class='button' bindtap='copy'
          form-type='submit'>複製</button>
</form>

以上示例就可以在userSubmit裡獲取到formId了:

userSubmit: function (e) {
  console.log(e.detail.formId);
},

需要注意一點,開發工具裡面是沒辦法檢視到真實的formId的,會是這樣一句提示"the formId is a mock one",提交給服務端就可以拿到了~

二、客服button樣式

其實button樣式沒什麼好說的,最近有幾個同學在群內討論,說是客服按鈕太小,想改一下樣式,沒辦法實現。

這裡我提供個思路:先按設計稿實現介面,聯絡客服如果樣式和官方給的不一樣,那就用position: absolute,定位一個button到你想要的位置,透明度設定為0即可,同時給button設定屬性open-type="contact"就ok了~

注:

1、這裡要注意button的open-type屬性是在基礎庫1.1.0開始支援的,自己要做一下相容處理~

2、button也可以改成其他樣式,有些同學為了獲取formId,就把頁面所有可點選區域都用button按鈕來實現了~

三、區分轉發的是群聊還是好友

這個其實就是場景值的判斷,先看一張圖:

上圖可以看出,從好友聊天視窗和群聊視窗點選小程式卡片後,場景值是不一樣的,分別是1007和1008,所以,我們可以在app的onLuanch或者onShow方法中去獲取到scene值,這樣就能知道使用者是通過哪種方式進入小程式的~

四、小程式元件化開發

小程式官方提供的元件化文案,這裡不細說,大家直接去github檢視吧: https://github.com/Tencent/wepy