ホームページ WeChat アプレット WeChatの開発 WeChat開発技術体験まとめ

WeChat開発技術体験まとめ

May 15, 2017 pm 01:32 PM

この記事は主にWeChatミニプログラムの開発中に遭遇した問題の概要に関する関連情報を紹介しますので、困っている友人は参考にしてください

WeChatミニプログラムの開発中に遭遇した問題の概要

これが最初です。ミニプログラムを正式に開発する時期になりました。今回のプロジェクトで使用する機能を中心に、以下の観点からミニプログラムの開発プロセスと経験について話しましょう。

データリクエスト

今回のミニプログラムには多くの追加機能がないため、今回はデータとデータ処理が主な作業になります。ミニプログラムはユーザーが独自のサーバーをリクエストするためのAPIを提供します。ミニ プログラムを開発する前に、WeChat パブリック プラットフォームで appID を申請し、ドメイン名を https プロトコルでバインドし、構成情報に情報を入力する必要があることに注意してください。ミニ プログラム開発ツールとリクエスト アドレスは、以前にバインドされたドメイン名の下にある必要があります。このプロジェクトでは、wx.request を使用してサーバーからデータを取得します。

wx.request({
   url: that.data.couponData.requestUrl,
   data: that.data.couponData.queryData,
   header: {
     'content-type': 'application/json'
   },
   success: function(res) {
     var list = res.data.goodsList;
     console.log(res.data);
     for(var i in list) {
       list[i].quanUsedNum = parseInt(list[i].quanTotalNum) - parseInt(list[i].quanRemainNum);
      list[i].isImgRendered = false;
     }
    list[0].isImgRendered = list[1].isImgRendered = list[2].isImgRendered = list[3].isImgRendered = true;
     that.setData({"couponData.totalPage":res.data.totalPage});
     that.setData({"couponData.list":that.data.couponData.list.concat(list)});
    that.setData({"couponData.loadmore":!that.data.couponData.loadmore});
     that.setData({"couponData.queryData.pageNum":parseInt(that.data.couponData.queryData.pageNum) + 1});
     if(that.data.couponData.queryData.pageNum > that.data.couponData.totalPage) {
      that.setData({"couponData.isAction":false});
    }

    if(that.data.couponData.list.length < 1) {
      that.setData({"couponData.nodata":true});
    }
     if(f) {
       f();
     }
   }
 });
ログイン後にコピー

データキャッシュ

データキャッシュは、ページ間のデータ転送を伴う検索関数を実行する必要があるため、localStorageを使用する方法もあります。 wx.setStorage はデータを localStorage に格納します。ページジャンプ後、localStorage からデータを読み出す場合、同期読み込みと非同期読み込みに分かれます。

クリップボードアプリケーション

ミニプログラムのAPIを使用すると、任意の情報をクリップボードに簡単にコピーして貼り付けることができます。

wx.setClipboardData({
   data: &#39;【&#39; + that.data.couponData.list[e.currentTarget.id].goodsTitle + &#39;】复制这条信息,打开【手机淘宝】&#39; + that.data.couponData.list[e.currentTarget.id].twoInOneKouling,
   success: function(res) {
     that.setData({"couponData.copyTip":true,"couponData.Kouling":that.data.couponData.list[e.currentTarget.id].twoInOneKouling})
   }
 });
ログイン後にコピー

Template

このプロジェクトでは、ページは基本的に似ていますが、微妙な違いがあるため、テンプレートを使用し、新しい template/template.wxml を作成し、名前属性を設定する必要があります。

 <template name=&#39;navsearch&#39;>
 <view class=&#39;nav-search&#39;>
   <view class=&#39;nav-searchcontainer space-between&#39;>
     <view class=&#39;nav-searchsearch&#39; wx:if=&#39;{{isSearch}}&#39;></view>
     <input class=&#39;nav-searchinput&#39; placeholder=&#39;请输入关键词找券&#39; name=&#39;queryStr&#39; value="{{queryStr}}" bindfocus=&#39;toggleSearch&#39; bindconfirm=&#39;doQuery&#39; bindinput="syncQuery"/>
     <view class=&#39;nav-searchdelete&#39; wx:if=&#39;{{!isSearch}}&#39; bindtap=&#39;deleteAll&#39;></view>
     <view class=&#39;nav-searchbtn center&#39; wx:if=&#39;{{!isSearch}}&#39; bindtap=&#39;doQuery&#39;>搜索</view>
   </view>

   <view class=&#39;nav-filter&#39; bindtap=&#39;toggleFilter&#39;></view>
 </view>
 </template>

 <!--在其他文件中使用模板-->
 <import src="/template/template.wxml" />
 <template is=&#39;navsearch&#39; data="{{...couponData}}"></template>
ログイン後にコピー

モジュール性

public js の場合、特別な js ファイルに記述し、module.exports を使用して interface を公開できます。
一般的な js ファイルは require を使用してインポートされます。

 var common = require(&#39;../../common/common.js&#39;);
 ...
 common.f(); //调用
ログイン後にコピー

redirectTo & navigateTo

redirectTo は特定のページにリダイレクトし、navigateTo は新しいページを開きます。 navigateTo を使用してあまりにも多くのページを開くとミニ プログラムがフリーズすることに注意してください。

共有

 Page({
   onShareAppMessage: function () {
     return {
       title: &#39;your title!&#39;,
       path: &#39;/xxxx/xxxx/xxxx&#39;,  //分享之后回到这个页面
       success: function(res) {
         f(); //成功回调;
       },
       fail: function(res) {
         f(); //失败回调;

       }
     }
   }
 })
ログイン後にコピー

リストのスライドの滑らかさを改善

つまり、ページをどこにスクロールしてもリスト内の画像が表示されるようになります。 実装方法は以下の通りです。

//js文件
 Page({
   loadImg:function(e) {
     //计算接下来加载哪几张
     var index = Math.floor((e.detail.scrollTop - 8)/259.5);
     var temp = this.data.couponData.list; //完整的列表
     var min = Math.max(index * 2,0),max = Math.min(index * 2 + 8,temp.length);
     for(var i = min; i < max; i ++) {
       if(temp[i] && !temp[i].isImgRendered) {
         temp[i].isImgRendered = true; //列表中的每一项有一个标记是否加载图片的的属性,默认false,随着页面滚动,一个个变成true。
       }
     }
     this.setData({"couponData.list":temp});
     temp = null;
   },
 })

 //wxml文件中在scroll-view上绑定事件。
 <scroll-view class="section" scroll-y="true" bindscroll=&#39;loadImg&#39;></scroll-view>
ログイン後にコピー

【関連推奨事項】

1. 特別な推奨事項: 「php Programmer Toolbox」V0.1 バージョンのダウンロード

2. WeChat パブリック アカウント プラットフォームのソース コードのダウンロード

3.システムのソースコードのダウンロードを注文する

以上がWeChat開発技術体験まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)