> 위챗 애플릿 > 미니 프로그램 개발 > 미니프로그램 개발에 있어서 어려운 점은 무엇인가요?

미니프로그램 개발에 있어서 어려운 점은 무엇인가요?

王林
풀어 주다: 2020-12-16 09:19:18
앞으로
4397명이 탐색했습니다.

미니프로그램 개발에 있어서 어려운 점은 무엇인가요?

이 기사에는 소규모 프로그램 개발에 대한 몇 가지 어려운 지식이 나열되어 있습니다. 모든 사람에게 도움이 되기를 바랍니다.

(학습 영상 공유: 프로그래밍 영상)

1. QR 코드를 생성하는 미니 프로그램

QR 코드를 생성하는 미니 프로그램은 실제로 백엔드 호출이 필요하며, 프론트엔드가 백엔드를 호출합니다. -끝 인터페이스.

다음 예에서는 백엔드 장면에 추가 매개변수를 전달합니다(최대 길이는 32자이며 숫자, 영어 대문자 및 소문자, 일부 특수 문자만 지원합니다: !#$&'()*+,/:; = ?@-._~, 열린 애플릿에서 사용되는 다른 문자를 직접 합법적인 문자로 인코딩하십시오.

    let scene = 't=3&n='+ this.inputVal+'&sale='+this.saleId;
    request(qcode,{isHyaline:false,qrcodeType:2,scene:scene,width:255,color:{r:'255',g:'255',b:'255'}})
      .then(res=>{})
    })
로그인 후 복사

여기서 함정은 프런트엔드가 QR 코드를 스캔하여 매개변수를 얻는 방법입니다.

  onLoad(opts){
    var scene = decodeURIComponent(opts.scene); // scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
     
  }
로그인 후 복사

2. 미니 프로그램이 미니 프로그램으로 점프합니다.

여기서 미니 프로그램을 호출합니다

function toMiniProgram(appid, path, extraData) {
  wx.navigateToMiniProgram({
    appId: appid,  // 要打开的小程序 appId
    path: path,   // 打开的页面路径
    envVersion: 'develop',  //要打开的小程序版本。仅在当前小程序为开发版或体验版时此参数有效。
    extraData: extraData,  // 需要传递给目标小程序的数据
    success: function (res) {
      console.log('打开成功')
    },
    fail: function (res) {}
  })
}
로그인 후 복사

페이지에서

 toMiniProgram('appid','pages/customer/goods-detail?id='+id+'&saleId='+this.saleId,{});
로그인 후 복사

를 사용하여 다른 애플릿에서 매개변수 가져오기

onLoad(opts){
    this.goodsId=opts.id
    this.saleId=opts.saleId
}
로그인 후 복사

3. 천장 효과 구현

천장 효과의 원리는 특정 높이로 스크롤된 탭을 고정된 위치로 재배열하는 것입니다

html

<view class="tab-ctn">
  <view class="tabs flex flex-justify {{isTabFixed?&#39;fixed&#39;:&#39;&#39;}}" id="tabs">
    <view class="item pr {{tabIndex===0?&#39;on&#39;:&#39;&#39;}}" @tap="toggleTab(0)">商品介绍</view>
    <view class="item pr {{tabIndex===1?&#39;on&#39;:&#39;&#39;}}" @tap="toggleTab(1)">规格参数</view>
  </view>
</view>
로그인 후 복사

css

.tabs{  padding:0 176rpx;
        font-size:30rpx;
        height:90rpx;
        border-bottom:0.5px solid #E4E4E4;}
.item{
    height:100%;
    position:relative;
    padding-top:20rpx;
    color:#999;
    &.on{
    color:#FD343B;
    font-weight:bold;
    }
}
.fixed{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:9;
}
로그인 후 복사

js

data={
    detailTopH:300, 
}
onLoad(){
    this.getElHeight(&#39;&#39;) // tab上面元素的高度
}
/**封装根据id获取元素高度 */
getElHeightById(id){
  return new Promise(function(resolve,reject){
    const query = wx.createSelectorQuery()
    query.select(&#39;#&#39;+id).boundingClientRect()
    query.selectViewport().scrollOffset()
    query.exec(function (res) {
      resolve(res[0].height)
    })
  })
}
// 调用
  getElHeight(id){
    this.getElHeightById(id).then(res=>{
      this.detailTopH = res
    })
  }
/**监听页面滚动事件 */
  onPageScroll(e){
    if(e.scrollTop>=this.detailTopH && !this.isTabFixed){
      this.isTabFixed=true
    }else if(e.scrollTop<=this.detailTopH && this.isTabFixed){
      this.isTabFixed=false
    }
  }
로그인 후 복사

4. 캡슐화 타임스탬프

function formatTime(timestamp, type = "date") {
  var date = new Date(timestamp);
  var year = date.getFullYear()
  var month = date.getMonth() + 1
  var day = date.getDate()
 
  var hour = date.getHours()
  var minute = date.getMinutes()
  var second = date.getSeconds()
  if (type == "date") {
    return [year, month, day].map(formatNumber).join(&#39;-&#39;);
  } else if (type == "all") {
    return [year, month, day].map(formatNumber).join(&#39;-&#39;) + &#39; &#39; + [hour, minute, second].map(formatNumber).join(&#39;:&#39;)
  } else if (type == "time") {
    return [hour, minute, second].map(formatNumber).join(&#39;:&#39;)
  } else if (type == "time2") {
    return [hour, minute].map(formatNumber).join(&#39;:&#39;)
  } else if (type == &#39;month&#39;) {
    return [month, day].map(formatNumber).join(&#39;-&#39;);
  }
 
}
/**niu 封装时间戳格式化辅助,将年月日先转为字符串,再判断是否加0*/
function formatNumber(n) {
  n = n.toString()
  return n[1] ? n : &#39;0&#39; + n
}
 
formatTime(1236547891,&#39;all&#39;) // 2019-11-02 03:11:11
formatTime(1236547891,&#39;time&#39;)  // 03:11:22
formatTime(1236547891,&#39;time2&#39;)  // 03:11
formatTime(1236547891,&#39;month&#39;)  // 03-03
formatTime(1236547891,&#39;date&#39;)  // 2019-11-02
로그인 후 복사

관련 권장 사항: Mini 프로그램 개발

위 내용은 미니프로그램 개발에 있어서 어려운 점은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿