위챗 소프로그램-전송 기능 구덩이 밟기(그룹과 개인, 여러 개의 전송 버튼, 전송 밴드 파라미터 식별) 총결산

6451 단어 학습 노트
작은 프로그램의 전송 기능이 봉인되어 페이지에서 onShare AppMessage 함수를 정의하여 이 페이지의 전송 정보를 설정할 수 있습니다.eg: wxml

js
Page({
  onShareAppMessage: function (res) {
    return {
      title: ' ',
      path: '/page/user?id=123',
      success: function(res) {
        //  
      },
      fail: function(res) {
        //  
      }
    }
  }
})

이상은 간단한 전송 단추입니다. 터치한 후에 onShare App Message 함수를 호출하여 전송할 수 있습니다. 전송된 작은 페이지는 함수에서 정의할 수 있습니다.이것들은 공식 문서에 모두 있고 상세하지만 저는 개발할 때 몇 가지 문제에 부딪혔습니다. 다음은 총괄을 하겠습니다.

1. 개인에게 전달되었는지 그룹으로 전달되었는지 판별한다


작은 프로그램을 할 때 제품의 수요는 그룹으로 전송되는지 아닌지를 판별하고 그룹과 개인을 대상으로 서로 다른 피드백을 하는 것이다.전송 정보를 얻으려면 js에 써야 합니다.
wx.showShareMenu({
  withShareTicket: true
})

withShareTicket을 오픈한 후 그룹에 전송하면 전송 후 성공한 리셋 함수에서shareTicketsshareTickets는 하나의 수조입니다. shareTickets의 유무를 판단하여 그룹에 전송되었는지 개인인지 판단할 수 있습니다.

2, 다중 전달 버튼


한 페이지에 여러 개의 전송 단추가 있으면 각 단추의 전송 페이지가 달라질 때.onShareAppMessage 함수에서 별도의 설정을 수행합니다.onShare AppMessage 함수에는options 매개 변수가 있고, options 매개 변수에는 이 함수를 촉발하는 원본 options의from 매개 변수가 전송 이벤트 원본을 표시합니다.button: 페이지 내 전송 단추;menu: 오른쪽 상단 전달 메뉴.버튼이라면 버튼의 target 매개 변수를 통해 어떤 버튼이 촉발했는지 판단할 수 있으며, 버튼의 id나class를 얻을 수 있습니다.이렇게 하면 서로 다른 단추에 대해 서로 다른 전송 페이지 eg를 설정할 수 있다.
Page({
  onShareAppMessage: function (res) {
    //button 
    if (res.from === 'button') { 
      let target_id = res.target.id;
      //id btn1 button 
      if (target_id === "btn1") {
        return {
          title: ' ',
          path: '/page/index',
          success: function(res) {
            //  
          },
          fail: function(res) {
            //  
          }
        }
      //id btn2 button 
      }else if((target_id === "btn2")){
        return {
          title: ' ',
          path: '/page/user',
          success: function(res) {
            //  
          },
          fail: function(res) {
            //  
          }
        }
      }
    //menu 
    }else if (res.from === 'menu') {
        return {
          title: 'menu ',
          path: '/page/user',
          success: function(res) {
            //  
          },
          fail: function(res) {
            //  
          }
        }
    }
  }
})

주:menu의 전송은 따로 설정해야 합니다

3. 리본 매개변수 전달


전송할 때 다른 사용자가 전송을 클릭하여 작은 프로그램에 들어갈 때 파라미터가 있어야 한다면 onShare AppMessage 함수에 필요한 값을 가져와 전송할 수 있습니다
Page({
  onShareAppMessage: function (res) {
    let sendinfo = {
      num: 1,
      nickName: "jack",
    }
    let str = JSON.stringify(sendinfo);
    return {
      title: nickName + ' ',
      path: '/page/user?sendinfo=' + sendinfo,
      success: function(res) {
        //  
      },
      fail: function(res) {
        //  
      }
    }
  }
})

지금 이 전송 카드를 클릭하면 전송 경로 주소의 페이지에서 가져온 값을 얻을 수 있습니다
Page({
  data:{
  }
  onLoad: function (option) {
    let sendinfo = option.sendinfo ;
  }
})

좋은 웹페이지 즐겨찾기