위 챗 애플 릿 개발 중 문제 총화

위 챗 애플 릿 개발 중 문제 총화
1. 애플 릿 wx. request () 방법 이 비동기 이기 때문에 app. js 에서 ajax 를 실행 한 후 각 페이지 에서 app. js 의 전체 데 이 터 를 불 러 올 때 순서대로 불 러 올 수 없습니다.예:

//app.js
App({
  ajax:function(){
    let that = this;
    wx.request({
      url: 'https://a.com/url.php',
      method: 'GET',
      success: function(e){
        that.data = 123;
      }
    })
  };
})
//content.js
let app = getApp()
Page({
  getData: function(){;
    app.ajax();
    console.log(app.data); //undefined
  }
})

해결 방법, Promise 비동기 함수 사용:

//app.js
App({
  ajax:function(){
    let that = this;
    let promise = new Promise(function(resolve, reject){
      wx.request({
        url: 'https://a.com/url.php',
        method: 'GET',
        success: function(e){
          that.data = 123;
          resolve();
        }
      })
    });
  };
})
//content.js
let app = getApp()
Page({
  getData: function(){;
    app.ajax().then(()=>{
      console.log(app.data); //123
    });
  }
})

2. 그림 은 원본 너비 만 가 져 올 수 있 고 기 존 너비 만 가 져 올 수 없습니다.그러나 이미지 탭 은 mode 속성 을 봉 하여 필요 에 따라 스스로 설정 할 수 있 습 니 다.
3. 모든 image 탭 아래쪽 에 투명 한 간격 이 있 습 니 다. padding 이 아 닌 margin 입 니 다.그림 앞 에 커버 를 할 때 구덩이 에 빠 질 수 있 습 니 다.
4. 네트워크 요청 은 https 를 배치 해 야 합 니 다.
5. tabBar 를 설정 할 때 list 매개 변수 에 있 는 pagePath 매개 변 수 는 app. json 에 있 는 pages 배열 의 첫 번 째 경 로 를 포함 해 야 합 니 다. 그렇지 않 으 면 tabBar 가 표시 되 지 않 습 니 다.
6. tabBar 점프 시 파 라 메 터 를 가 져 올 수 없습니다. 해결 방법:

//search.js
var app = getApp();
Page({
  confirm: function(e){
    //    ,     
    let val = e.detail.value;
    app.searchWord = val;
    this.jump();
  },
  jump: function(){
    //  tabBar
    wx.switchTab({
      url: '../index/index',
    });
  },
});
 
//index.js
var app = getApp();
Page({
  onShow: function(e){
    //      
    let val = app.searchWord;
  }
});
//                   app.js 。          onShow         app.js   。
  

7. 애플 릿 wx. request () 방법 으로 요청 한 url 은 https 로 시작 해 야 합 니 다.
8. wx. request () 는 post 방법 으로 요청 할 때 header, header [content - type] 값 을 application / x - ww - form - urlencoded 로 추가 해 야 합 니 다.예:

wx.request({
  url: 'https://a.com/url.php',
  data: {message: 123},
  method: 'POST',
  header: {
    'content-type': 'application/x-www-form-urlencoded'
  },
  success: function(e){
    console.log(e)
  }
});

 9. 애플 릿 에서 html 탭 을 불 러 올 수 없고 데이터 렌 더 링 도 wxml 탭 (등) 을 렌 더 링 할 수 없 으 며 wxParse. js 를 사용 하여 관련 데 이 터 를 처리 할 수 있 습 니 다.
10. 안 드 로 이 드 는 wx. request () 가 요청 한 데 이 터 를 렌 더 링 할 수 없습니다.
되 돌아 오 는 데이터 에 BOM 헤더 (3 글자 의 공백) 가 있 는 지 확인 합 니 다.안 드 로 이 드 의 wx. request 분석 은 BOM 헤드 를 뛰 어 넘 지 않 고 데 이 터 를 대상 이나 배열 이 아 닌 문자열 로 되 돌려 줍 니 다.
예:
되 돌아 오 는 데 이 터 는: (3 글자 의 공백) {a: 1, b: 2}
분석 한 데 이 터 는 {a: 1, b: 2} (문자열) 이지 {a: 1, b: 2} (대상) 이 아 닙 니 다.
대상 이 아니 기 때문에 템 플 릿 렌 더 링 같은 것 은 정상적으로 진행 할 수 없습니다.해결 방법, 백 스테이지 에서 데 이 터 를 되 돌려 주기 전에 BOM 헤드 를 제거 하면 됩 니 다.백 스테이지 에서 BOM 헤드 를 제거 하지 않 으 면 프론트 에서 제거 할 수 있 습 니 다. 그러나 wx. request 는 dataType 이 부족 하면 기본 값 은 json 이 고 자동 으로 해석 되 어 BOM 헤드 를 제거 할 수 없습니다.
해결 방안:

wx.request({
  url: url,
  method: 'GET',
  dataType: 'txt',
  success: function(e){
    let json = e.data.trim();
    let arr = JSON.parse(json);
  }
});

dataType 은 json 이외 의 형식 으로 바 꾸 어 작은 프로그램 이 json 문자열 을 자동 으로 해석 하지 않도록 한 다음 에 되 돌아 오 는 데 이 터 를 trim () 방법 으로 공백 을 제거 하고 마지막 으로 json 문자열 을 해석 하면 됩 니 다.
11. 디 버 깅 시 다 중 줄 생략 (- webkit - line - clamp) 이 정상 이 며, 발표 시 다 중 줄 생략 이 잘못 되 었 습 니 다.
해결 방안: 재 검토 하지 않 으 려 면 백 스테이지 에서 차단 하면 됩 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다. 본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기