WeChat 미니 프로그램 개발이 완료되었으며 당연히 많은 문제에 직면했습니다. 이 기사에서는 더 많은 WeChat 개발자에게 도움이 되기를 바라며 주로 WeChat 미니 프로그램 개발 중에 발생한 문제를 요약하여 공유합니다. .
미니 프로그램 소개
"당신의 관심사가 더 이상 외롭지 않게 하세요, 당신의 취미가 더 이상 방황하지 않게 하세요"는 WeChat 미니 프로그램 "Let's Go Together"의 주제입니다. 이 미니 프로그램은 현대인의 외로움을 해결하는 것을 목표로 합니다. 캠퍼스 생활을 하는 대학생 모두가 달리기, 피트니스, 경쟁 및 기타 활동에서 같은 생각을 가진 친구와 파트너를 찾을 수 있습니다. 즉시 사용 가능하고 사용하기 쉬운 미니 프로그램의 기능과 친구 만들기 기능을 결합하면 효율적이고 빠르며 부담 없는 오프라인 데이트 도구가 될 것입니다
이 미니 프로그램은 bmob back을 통해 데이터 처리 및 저장 기능을 제공합니다. -end cloud 지원
미니 프로그램 코드
개발 중 기술적인 문제 요약
1.e.target.dataset 사용 문제
미니 프로그램 개발 과정에서 속성 값을 사용하는 경우가 많습니다. 태그 속성의 경우 일반적으로
WXML
<view bindtap="bintap" data-id="1"></view>
JS
bintap:function(e){ var id = e.currentTarget.dataset.id; }
data-*에서 * 이름 지정 문제는 낙타 표기 이름 지정과 순수 소문자
를 제거하면 해결된다는 말이 인터넷에 있습니다. 2. -미니 프로그램 텍스트 영역 텍스트 상자의 시간 단어 수
WXML
<view> <view> <textarea name="content" bindinput="bindTextAreaChange" maxlength="{{noteMaxLen}}" /> <view class="chnumber"> {{noteNowLen}}/{{noteMaxLen}}</view> </view> </view>
JS
data:{ noteMaxLen: 200,//备注最多字数 noteNowLen: 0,//备注当前字数 } //字数改变触发事件 bindTextAreaChange: function (e) { var that = this var value = e.detail.value, len = parseInt(value.length); if (len > that.data.noteMaxLen) return; that.setData({ content: value, noteNowLen: len }) },
3. JS를 사용하여 퍼지 쿼리 구현
Bmob 백엔드 클라우드에서 제공하는 데이터 처리 및 저장 지원을 사용하고 있으므로 Bmob에서 제공하는 개발 문서에 따르면 무료 버전의 애플리케이션은 퍼지 쿼리를 수행할 수 없습니다. 여기를 참조한 다음 거의 완성된 활동 검색 인터페이스를 보면 느낌이 말로 표현할 수 없습니다. 포기하려던 순간, 먼저 배경 데이터를 모두 컬렉션에 저장한 뒤, 입력한 검색값에 따라 하나씩 매칭하는 방법이 생각나서 시작하게 되었습니다. 바로 작업하기 위해 먼저 javaScript를 확인해보았는데, Document, String 객체에는 지정된 문자열 값이 문자열에서 처음 나타나는 위치를 반환할 수 있는 메서드가 있습니다. 각 데이터의 문자가 나타나면 검색 결과 모음에 추가하세요.
JS
//js 实现模糊匹配查询 findEach: function (e) { var that = this var strFind = that.data.wxSearchData.value; //这里使用的 wxSearch 搜索UI插件, if (strFind == null || strFind == "") { wx.showToast({ title: '输入为空', icon: 'loading', }) } if (strFind != "") { var nPos; var resultPost = []; for (var i in smoodList) { var sTxt = smoodList[i].title || ''; //活动的标题 nPos = sTxt.indexOf(strFind); if (nPos >= 0) {//如果输入的关键字在该活动标题中出现过,则匹配该活动 resultPost.push(smoodList[i]); //将该活动加入到搜索到的活动列表中 } } that.setData({ moodList: resultPost }) } },
자세한 코드는 Github에서 확인하세요
4 JS를 사용하여 문자열 형식의 시간을 초 전으로 변환하세요. , 분 전...
미니 프로그램에는 이벤트 시간을 포함하여 댓글 달기, 활동 참여, 수집 등 일련의 기능이 포함되어 있으며 데이터베이스에 저장된 시간 형식은 2017-11-30 23:36입니다. 10, 이제 인터페이스에 특정 시간을 표시하지 않고 현재 시간과의 차이, 즉 몇 초 전, 몇 분 전 등을 표시하고 싶습니다. 구현은 복잡하지 않습니다. 먼저 문자열의 시간을 타임스탬프로 변환한 다음 현재 타임스탬프와 비교하여 몇 초 전, 몇 분 전, 몇 시간 전, 며칠 전 등으로 변환할 수 있습니다.
JS
//字符串转换为时间戳 function getDateTimeStamp(dateStr) { return Date.parse(dateStr.replace(/-/gi, "/")); } //格式化时间 function getDateDiff(dateStr) { var publishTime = getDateTimeStamp(dateStr) / 1000, d_seconds, d_minutes, d_hours, d_days, timeNow = parseInt(new Date().getTime() / 1000), d, date = new Date(publishTime * 1000), Y = date.getFullYear(), M = date.getMonth() + 1, D = date.getDate(), H = date.getHours(), m = date.getMinutes(), s = date.getSeconds(); //小于10的在前面补0 if (M < 10) { M = '0' + M; } if (D < 10) { D = '0' + D; } if (H < 10) { H = '0' + H; } if (m < 10) { m = '0' + m; } if (s < 10) { s = '0' + s; } d = timeNow - publishTime; d_days = parseInt(d / 86400); d_hours = parseInt(d / 3600); d_minutes = parseInt(d / 60); d_seconds = parseInt(d); if (d_days > 0 && d_days < 3) { return d_days + '天前'; } else if (d_days <= 0 && d_hours > 0) { return d_hours + '小时前'; } else if (d_hours <= 0 && d_minutes > 0) { return d_minutes + '分钟前'; } else if (d_seconds < 60) { if (d_seconds <= 0) { return '刚刚'; } else { return d_seconds + '秒前'; } } else if (d_days >= 3 && d_days < 30) { return M + '-' + D + ' ' + H + ':' + m; } else if (d_days >= 30) { return Y + '-' + M + '-' + D + ' ' + H + ':' + m; } }
5. WeChat 애플릿은 양식 데이터를 지우기 위해 양식을 제출합니다
이벤트를 게시한 후 데이터가 지워지지 않으면 사용자 경험이 좋지 않을 것입니다. mini 프로그램은 html + jS와는 다릅니다. dataSet({})을 사용하여 값을 할당하고 뷰 레이어는 비동기 방식으로 값을 활성화할 수 있으므로 양식을 제출한 후 이것에 값을 할당해야 한다고 생각했습니다. 양식을 지우는 효과를 얻으려면 입력을 비워야 합니다. 물론 양식에 입력이 포함될 뿐만 아니라 이러한 방식으로 지우기 효과도 얻을 수 있습니다
WXML
<form bindsubmit="submitForm"> <text class="key">活动名称</text> <input name="title" maxlength="100" value="{{title}}" /> <button formType="submit">确定</button> </form>
JS
submitForm:function(e){ var title = e.detail.value.title; ...... success: function (res) { //将title值设置空 that.setData({ title: '' } } }
6. 위챗 아이디, QQ번호, 휴대폰번호 인증
이벤트 참여를 위해서는 실명, 연락처, 기타 정보를 필수로 입력해야 하므로, 이용자가 임의로 정보를 입력하는 것을 방지하기 위해 반드시 인증을 거쳐야 합니다
JS
var wxReg = new RegExp("^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$"); //微信号正则校验 var qqReg = new RegExp("[1-9][0-9]{4,}"); //QQ号正则校验 var phReg = /^1[34578]\d{9}$/; //手机号正则校验 var nameReg = new RegExp("^[\u4e00-\u9fa5]{2,4}$"); //2-4位中文姓名正则校验
7. Bmob SDK를 사용하여 등록 성공 후 템플릿 메시지 보내기, 미니 프로그램 QR 코드 생성 등을 할 수 있습니다.
개발 과정에서 등록 성공 시 사용자에게 알리는 방법을 알고 싶었기 때문에 확인했습니다. 미니 프로그램의 개발 문서에서 템플릿 메시지를 보내는 API가 있다는 것을 발견했고, Bmob의 개발 문서를 쿼리한 결과 이 기능이 템플릿 메시지에서만 성공적으로 전송될 수 있다는 것을 발견했습니다. 실제 머신 설정 후엔 주로 성공하는데 사용이 안되는 문제
즉, 미니 프로그램이 출시된 후 템플릿 메시지에 페이지 매개변수가 포함되어 있으면 전송되지 않는데 이 문제는 개발 버전에서 보고되었으며 Bmob 미니 프로그램 SDK가 업데이트되면 해결될 것으로 예상됩니다. 관련 권장 사항:WeChat 미니 프로그램 구성 요소화를 위한 솔루션 아이디어 및 방법
위 내용은 WeChat 미니 프로그램 개발 시 발생하는 문제 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!
