위 챗 애플 릿 에서 흔히 볼 수 있 는 문제 총화 (4058, 40013) 및 해결 방법

8936 단어
위 챗 애플 릿 에서 흔히 볼 수 있 는 문제:
프로젝트 구성
위 챗 애플 릿 프로젝트 구 조 는 주로 네 개의 파일 형식 이 있 는데 다음 과 같다.
WXML (WeiXin Markup Language) 은 프레임 워 크 디자인 의 태그 언어 로 기본 구성 요소, 이벤트 시스템 과 결합 하여 페이지 의 구 조 를 구축 할 수 있 습 니 다.내 부 는 주로 위 챗 이 스스로 정의 하 는 구성 요소 입 니 다.
WXSS (WeiXin Style Sheets) 는 스타일 언어 로 WXML 의 구성 요소 스타일 을 설명 하 는 데 사 용 됩 니 다.
js 논리 처리, 네트워크 요청
json 애플 릿 설정, 예 를 들 어 페이지 등록, 페이지 제목 및 tabBar.
메모: 개발 자가 설정 항목 을 줄 이 는 데 편리 하도록 설명 페이지 의 이 네 개의 파일 은 같은 경로 와 파일 이름 을 가 져 야 합 니 다.
루트 디 렉 터 리 에서 app 으로 이름 을 지은 이 네 가지 형식의 파일 은 바로 프로그램 입구 파일 입 니 다.
app.json
이 파일 이 있어 야 합 니 다. 이 파일 이 없 으 면 프로젝트 를 실행 할 수 없습니다. 위 챗 프레임 워 크 는 이것 을 설정 파일 입구 로 하고 전체 애플 릿 의 전역 설정 이기 때 문 입 니 다.페이지 등록, 네트워크 설정, 애플 릿 의 window 배경 색, 네 비게 이 션 스타일 설정, 기본 제목 설정 을 포함 합 니 다.
app.js
이 서류 가 있어 야 합 니 다. 없어 도 잘못 보고 할 수 있 습 니 다!그러나 이 파일 을 만 들 면 됩 니 다. 아무것도 쓰 지 않 아 도 됩 니 다. 나중에 이 파일 에서 애플 릿 의 수명 주기 함수, 전역 변 수 를 감청 하고 처리 할 수 있 습 니 다.
app.wxss
전역 적 으로 설 정 된 스타일 파일 입 니 다. 항목 이 필요 하지 않 습 니 다.
애플 릿 기본 파일 구 조 를 알 면 공식 demo 를 연구 할 수 있 습 니 다. 연구 과정 에서 모 르 는 부분 이 있 으 면 공식 문서 에 가서 답 을 찾 을 수 있 습 니 다. 답 을 찾 지 못 하거나 의문 이 있 으 면 이 블 로그 에 글 을 올 려 서로 교류 할 수 있 습 니 다.확률 이 높 은 몇 가지 문 제 를 소개 한다.
질문
rpx(responsive pixel)
위 챗 애플 릿 은 아이 폰 6 에서 375 px, 750 개의 물리 픽 셀 이 있 으 면 750 rpx = 375 px = 750 물리 픽 셀, 1rpx = 0.5px = 1 물리 픽 셀 등 다양한 해상도 에 맞 는 크기 단 위 를 새롭게 정의 했다.
이 프로젝트 는 내 가 사용 하 는 것 은 모두 rpx 사이즈 단위 인 데, 그 동안 매우 기발 한 문제 에 부 딪 혔 다.인접 한 두 가지 정 보 는 모두 하나의 분할 선 이 있 을 것 이다. 나 는 선의 높이 를 모두 1rpx 로 설정 하지만 개별 분할 선 은 표시 되 지 않 는 다.
첫 번 째 라인 과 두 번 째 라인 이 직접적 으로 현실 적 이지 않 은 것 을 보 았 지만 다른 것 은 모두 보 여 주 었 습 니 다. 분할 선의 속성 이 똑 같 고 서로 다른 핸드폰 에 표시 되 지 않 는 분할 선 도 다 릅 니 다. 어떤 해상 도 는 여러 개의 분할 선 이 표시 되 지 않 습 니 다. 이것 이 시 뮬 레이 터 의 bug 인지 rpx 의 bug 인지 모 르 겠 습 니 다.마지막 으로 분할 선의 높이 사이즈 단 위 는 px 를 사용 하여 이 문 제 를 해결 했다.
40013 오류
위 챗 애플 릿 이 처음 나 왔 을 때 AppID 알림 을 입력 하면 풀 리 지 않 았 다 는 뜻 이지 만 현재 공식 소프트웨어 업 데 이 트 는 무 AppID 개발 을 선택 할 수 있 습 니 다. 다음 그림 에서 저 희 는 무 AppID 를 선택 하면 이 오 류 를 해결 할 수 있 습 니 다.정부 개발 도 구 를 설치 할 것 을 건의 하 다.다운로드 링크 를 찾 으 러 갈 수 있 습 니 다.
4058 오류
위 챗 애플 릿 이 프로젝트 를 만 들 때 AppID 가 없 는 것 을 선택 하면 프로젝트 를 만 들 때 app. json 이 생 성 됩 니 다. app. jsn 은 프로그램 이 시작 하 는 가장 중요 한 파일 입 니 다. 프로그램의 페이지 등록, 창 설정, tab 설정 과 네트워크 요청 시간 설정 은 모두 이 파일 아래 에 있 습 니 다.만 든 프로젝트 디 렉 터 리 에 app. json 파일 이 없 으 면 아래 의 오 류 를 보고 합 니 다.
우 리 는 위의 오류 정보 중 에 숫자 - 4058 이 있 는 것 을 보 았 습 니 다. 이것 은 초 입 위 챗 애플 릿 이 가장 많은 오 류 를 만 났 을 것 입 니 다. 이런 것 은 보통 파일 이 부족 하고 뒤에 path 가 있 습 니 다. 이 경 로 를 통 해 이 파일 이 존재 하 는 지 확인 할 수 있 습 니 다.이러한 오 류 를 일 으 키 는 이 유 는 일반적으로 프로젝트 가 선택 한 디 렉 터 리 가 정확 하지 않 거나 app. json 에 존재 하지 않 는 페이지 를 등록 한 것 입 니 다.
물론 app. json 파일 의 pages 에 등 록 된 페이지 가 만 들 어 지지 않 았 거나 특정한 페이지 를 삭 제 했 지만 등록 을 취소 하지 않 았 다 면 - 4058 오류 가 발생 할 수 있 습 니 다.
페이지 등록 오류
이 오 류 는 쉽게 이해 할 수 있 습 니 다. 페이지 등록 오류 입 니 다.페이지 는 Page 대상 을 통 해 렌 더 링 됩 니 다. 각 페이지 에 대응 하 는 js 파일 은 page 를 만들어 야 합 니 다. 가장 쉬 운 방법 은 js 파일 에 Page ({}) 를 기록 하 는 것 입 니 다. page 에 페이지 렌 더 링 을 관리 하 는 수명 주기 와 데이터 처리 가 있 습 니 다. 이벤트 가 모두 여기 서 완 료 됩 니 다.이 오류 가 발생 한 원인 은 일반적으로 페이지 를 만 들 었 을 때 js 파일 이 처리 되 었 거나 처리 되 지 않 았 기 때 문 입 니 다.그래서 페이지 를 만 드 는 동시에 js 파일 에서 먼저 페이지 를 만 드 는 습관 을 들 여야 합 니 다.
페이지 경로 오류
문자 그대로 페이지 경로 가 잘못 되 었 습 니 다. 위 챗 에 서 는 두 가지 경로 가 있 습 니 다. 하 나 는 wxml 파일 에서 사용 합 니 다.
다음 코드:
wxml 파일:
js 파일 이벤트 처리 함수:

bindtap:function(event){
wx.navigateTo({
url: "search/search"
})
}

만약 당신 이 이렇게 쓰 면 축하합니다. 위 에서 제시 한 오 류 를 볼 수 있 습 니 다. 이것 은 반복 호출 경로 로 인해 발생 한 것 입 니 다. 처리 방법 은 하나의 경 로 를 삭제 하고 삭제 하 는 것 입 니 다.



   



이것 도 허락 하지 않 는 다, 다시 말 하면.
Do not have * handler in current page.
대충 말 하면 현재 페이지 에 이 처리 가 없 으 면 이미 정의 되 었 는 지 확인 하고 오류 가 발생 할 수 있 는 위치 pages / message / message 를 지적 한 것 입 니 다. 사실은 이런 문제 가 발생 하면 보통 우리 가 wxml 에서 처리 사건 을 정 의 했 지만 js 파일 에서 이 를 실현 하지 못 했 을 때 사건 의 처리 방법 은 이 오류 가 발생 할 수 있 습 니 다.그러면 우 리 는 제시 에 따라 js 파일 에 사건 처 리 를 합 니 다. 다음 코드 를 더 하면 다 시 는 이런 오류 알림 이 없 을 것 입 니 다.

 bind:function(event){
  wx.navigateTo({
   url: "
pages/logs/logs
"
  })
 },

tabBar 설정 보이 지 않 음
tabBar 가 표시 되 지 않 는 이 유 는 여러 가지 가 있 습 니 다. 이 오 류 를 찾 으 면 app. json 이라는 파일 로 직접 갑 니 다. 가장 흔히 볼 수 있 는 것 은 위 챗 애플 릿 을 배 웠 을 때 가장 쉽게 범 할 수 있 는 오 류 는 다음 과 같 습 니 다.
등록 페이지 는 app. json 의 pages 필드 에 페이지 를 쓸 것 입 니 다. 예 를 들 어

"pages":[
  "pages/index/index",
  "pages/logs/logs",
  "pages/account/account",
  "pages/more/more"
 ],

tabBar 쓰기 오류 로 인해 표시 되 지 않 습 니 다. 대문자 B 를 소문 자로 써 서 tabBar 가 표시 되 지 않 습 니 다.
tabBar 의 list 에 pagePath 필드 가 쓰 여 있 지 않 거나 pagePath 에 있 는 페이지 가 등록 되 어 있 지 않 습 니 다.
tabBar 의 list 페이지 Path 가 지정 한 페이지 는 등록 페이지 의 첫 번 째 페이지 에 쓰 여 있 지 않 습 니 다.위 챗 애플 릿 의 논 리 는 'pages' 의 첫 번 째 페이지 가 첫 페이지, 즉 프로그램 이 시 작 된 후 첫 번 째 로 표 시 된 페이지 라 는 것 이다. 만약 에 tabBar 의 list 의 pagePath 가 지정 한 페이지 가 pages 의 첫 번 째 페이지 가 아니라면 당연히 텔레비전 tabBar 도 없 을 것 이다.tabBar 의 수량 은 두 가지 보다 낮 거나 다섯 가지 보다 높 으 며, 위 챗 공식 에 서 는 tabBar 의 최소 두 가지 가 최대 5 가지 라 고 명 확 히 규정 하고 있다.초과 하거나 적 으 면 tabBar 가 표시 되 지 않 습 니 다.
질문
이 동적 그림 을 통 해 문 제 를 발견 할 수 있 습 니 다. 음악 을 클릭 하여 음악 인터페이스 에 들 어 갈 때 title 은 WeChatForQQ 를 먼저 표시 한 다음 에 나타 난 음악 을 보 여 줍 니 다. 이 체험 은 받 아들 이기 어 려 울 것 입 니 다. 이 유 는 음악 인터페이스의 title 이 js 파일 에서 page 의 생명 주기 방법 에 설정 되 어 있 기 때 문 입 니 다.생명 주 기 를 모 르 면 클릭 하여 볼 수 있 습 니 다.

Page({
data:{
// text:"      "
},
onLoad:function(options){
//       options           

 },
 onReady:function(){
  //       
  //NavigationBarTitle     json     ,          
wx.setNavigationBarTitle({
 title: '  '
})
 },
 onShow:function(){
  //     
 },
 onHide:function(){
  //     
 },
 onUnload:function(){
  //     
 }
})


설명 을 통 해 알 수 있 듯 이 설정 제목 은 onReady 방법 에 쓰 여 있 습 니 다. 즉, 페이지 가 렌 더 링 되 었 습 니 다. onReady 전에 표 시 된 title 은 json 파일 (덮어 쓰기 관계, 하위 페이지 json 파일 에 title 을 설정 하면 app. json 전역 설정 을 덮어 씁 니 다) 의 title 입 니 다.wx. setNavigation BarTitle 을 onLoad 함수 에 쓴다 고 말 할 수 있 습 니 다. 그러나 이 설정 이 잘못 되 었 다 면 onLoad 가 실 행 된 후에 야 페이지 를 렌 더 링 하기 때 문 입 니 다. 렌 더 링 페이지 에 있 을 때 title 은 json 파일 에서 읽 기 때문에 onLoad 설정 의 title 은 페이지 가 렌 더 링 되 기 전에 만 표시 되 고 그 다음 에 json 파일 의 tile 을 표시 합 니 다.그래서 지금 은 ttle 설정 이 가장 좋 은 곳 은 하위 파일 에 json 파일 을 쓰 는 것 임 을 알 아야 합 니 다. 파일 에 기록 합 니 다. 색상 을 바 꾸 려 면 파일 에 직접 추가 하면 됩 니 다. 이 파일 이 쓴 속성 값 은 app. json 에서 설정 한 값 을 덮어 씁 니 다.

{
"navigationBarTitleText": "  "
}

페이지 를 열 수 없습니다.
하나의 애플 리 케 이 션 은 동시에 5 페이지 만 열 수 있 습 니 다. 5 페이지 를 열 었 을 때 wx. navigateTo 는 새 페이지 를 제대로 열 수 없습니다.다 층 적 인 상호작용 방식 을 피하 거나 wx. redirecto 를 사용 하 십시오.
로 컬 자원 은 css 를 통 해 가 져 올 수 없습니다.
background - image: 네트워크 그림 이나 base 64 를 사용 하거나 탭 을 사용 할 수 있 습 니 다.
페이지 간 데이터 전달
위 챗 애플 릿 경로 (페이지 이동) 는 API wx. navigateTo 또는 wxml 를 통 해 이 루어 집 니 다.

 
     
       
         
       
       
         
            {{item.title}}
         
         
           {{item.message}}
         
      
      
        {{item.time}}
        {{item.count}}
      
     
     
    

한편, 데이터 수신 은 js 파일 의 page 에서 받 은 것 입 니 다. page 수명 주기 에 onLoad 함수 가 있 습 니 다. 이것 은 바로 데 이 터 를 초기 화 하 는 작업 을 하 는 것 입 니 다. onLoad 함수 에 매개 변수 options 가 있 습 니 다. 우 리 는 key 를 통 해 데 이 터 를 얻 을 수 있 습 니 다. 다음 과 같 습 니 다.

Page({
 data:{
  // text:"      "
  isHiddenToast:true
 }
 onLoad:function(options){
  //       options           
  console.log(options.title)
   console.log(options.message)

 },
 onReady:function(){
  //       
 },
 onShow:function(){
  //     
 },
 onHide:function(){
  //     
 },
 onUnload:function(){
  //     
 },
 bind:function(event){
wx.navigateTo({
 url: "
pages/logs/logs
"
})
 },
})



읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다. 본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기