ホームページ WeChat アプレット ミニプログラム開発 WeChat アプレット開発で発生した問題の概要

WeChat アプレット開発で発生した問題の概要

Jan 25, 2018 pm 03:08 PM
アプレット まとめ プログラム開発

WeChat ミニ プログラムの開発は完了しましたが、当然のことながら多くの問題に遭遇しました。この記事では、より多くの WeChat 開発者を支援することを願って、主に WeChat ミニ プログラムの開発中に発生した問題の概要を共有します。 。

ミニプログラムのご紹介

「趣味を孤独にしない、趣味を迷わない」がWeChatミニプログラム「一緒に行こう」のテーマです このミニプログラムは現代人の孤独を解決することを目的としています。キャンパスライフ中の大学生は、ランニング、フィットネス、競技、その他のアクティビティで同じ志を持った友達やパートナーを見つけましょう。ミニ プログラムのすぐに使える使いやすい機能と友達作りを組み合わせることで、効率的、高速、負担のかからないオフライン デート ツールになります

このミニ プログラムは、bmob back によってデータ処理とストレージが提供されます。 -end クラウドサポート

ミニプログラムコード

WeChat アプレット開発で発生した問題の概要

開発中の技術的問題のまとめ

1. e.target.datasetの使用に関する問題

ミニプログラム開発のプロセスでは、属性値を使用することがよくあります。通常、 で data-*="{{XXX}}" を設定し、JS で XXX 値を取得するために e.target.dateset.* を使用しますが、よく未定義に遭遇します。 use console .log(e) 出力情報を見ると、e オブジェクトに currentTarget と target という 2 つのオブジェクトが含まれていることがわかります。このとき、データは currentTarget にある場合があります。値を取得します

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 が提供する開発ドキュメントを参照してください。アプリケーションの無料版ではファジー クエリを実行できません。ここを参照して、ほぼ完成したアクティビティ検索インターフェイスを見て、その感動は言葉では言い表せません。諦めかけたとき、ふと、背景データをすべてコレクションに保存し、入力された検索値に応じて一つずつ照合する方法を思いつき、考えた結果、実行してみました。 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: &#39;输入为空&#39;,
        icon: &#39;loading&#39;,
      })
    }
    if (strFind != "") {
      var nPos;
      var resultPost = [];
      for (var i in smoodList) {
        var sTxt = smoodList[i].title || &#39;&#39;; //活动的标题
        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 = &#39;0&#39; + M;
  }
  if (D < 10) {
    D = &#39;0&#39; + D;
  }
  if (H < 10) {
    H = &#39;0&#39; + H;
  }
  if (m < 10) {
    m = &#39;0&#39; + m;
  }
  if (s < 10) {
    s = &#39;0&#39; + 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 + &#39;天前&#39;;
  } else if (d_days <= 0 && d_hours > 0) {
    return d_hours + &#39;小时前&#39;;
  } else if (d_hours <= 0 && d_minutes > 0) {
    return d_minutes + &#39;分钟前&#39;;
  } else if (d_seconds < 60) {
    if (d_seconds <= 0) {
      return &#39;刚刚&#39;;
    } else {
      return d_seconds + &#39;秒前&#39;;
    }
  } else if (d_days >= 3 && d_days < 30) {
    return M + &#39;-&#39; + D + &#39; &#39; + H + &#39;:&#39; + m;
  } else if (d_days >= 30) {
    return Y + &#39;-&#39; + M + &#39;-&#39; + D + &#39; &#39; + H + &#39;:&#39; + m;
  }
}
ログイン後にコピー

5. WeChat アプレットはフォーム データをクリアするためにフォームを送信します

イベントを公開した後、データがクリアされない場合、ミニのデータ インタラクションは悪くなるはずです。プログラムは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: &#39;&#39;
         }
     }
}
ログイン後にコピー

6。 WeChat ID、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 ミニ プログラムのバージョン。 Zhihu の例の共有


WeChat ミニ プログラムをコンポーネント化するためのソリューションのアイデアと方法

WeChatミニプログラムバージョン2048ミニゲーム

以上が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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Python を使用して WeChat アプレットを開発する Python を使用して WeChat アプレットを開発する Jun 17, 2023 pm 06:34 PM

モバイル インターネット技術とスマートフォンの普及により、WeChat は人々の生活に欠かせないアプリケーションになりました。 WeChat ミニ プログラムを使用すると、アプリケーションをダウンロードしてインストールすることなく、ミニ プログラムを直接使用して、いくつかの簡単なニーズを解決できます。この記事では、Python を使用して WeChat アプレットを開発する方法を紹介します。 1. 準備 Python を使用して WeChat アプレットを開発する前に、関連する Python ライブラリをインストールする必要があります。ここでは、wxpy と itchat の 2 つのライブラリを使用することをお勧めします。 wxpy は WeChat マシンです

小さなプログラムでも反応できますか? 小さなプログラムでも反応できますか? Dec 29, 2022 am 11:06 AM

ミニプログラムはreactを利用することができます 使い方: 1. 「react-reconciler」に基づいてレンダラーを実装し、DSLを生成します; 2. DSLを解析してレンダリングするためのミニプログラムコンポーネントを作成します; 3. npmをインストールし、開発者ビルドを実行しますツール内の npm; 4. パッケージを独自のページに導入し、API を使用して開発を完了します。

WeChat ミニ プログラムにカードめくり効果を実装する WeChat ミニ プログラムにカードめくり効果を実装する Nov 21, 2023 am 10:55 AM

WeChat ミニ プログラムでのカードめくり効果の実装 WeChat ミニ プログラムでは、カードめくり効果の実装は、ユーザー エクスペリエンスとインターフェイス インタラクションの魅力を向上させることができる一般的なアニメーション効果です。以下では、WeChat アプレットでカードめくりの特殊効果を実装する方法と、関連するコード例を詳しく紹介します。まず、ミニ プログラムのページ レイアウト ファイルに 2 つのカード要素を定義する必要があります。1 つは前面のコンテンツを表示するため、もう 1 つは背面のコンテンツを表示するためです。具体的なサンプル コードは次のとおりです: &lt;!--index.wxml- ->&l

アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 Oct 31, 2023 pm 09:25 PM

10月31日の当サイトのニュースによると、今年5月27日、アント・グループは「漢字拾いプロジェクト」の立ち上げを発表し、最近新たな進展を迎えた:アリペイが「漢字拾い-珍しい文字」ミニプログラムを開始協会からコレクションを収集する レア文字は、レア文字ライブラリを補完し、アリペイでのレア文字入力方法の改善に役立つように、レア文字に異なる入力エクスペリエンスを提供します。現在、ユーザーは「漢字ピックアップ」「珍文字」などのキーワードで検索することで「珍文字」アプレットに入ることができる。ミニプログラムでは、ユーザーがシステムで認識・入力されなかった珍しい文字の画像を送信し、確認後、Alipay のエンジニアがフォントライブラリに追加エントリを作成します。当サイトでは、発音が不明瞭な珍しい単語を対象とした最新の単語分割入力方法をミニプログラムで体験できることに注目しました。ユーザー解体

uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 Oct 20, 2023 pm 02:12 PM

uniapp がミニ プログラムと H5 の間で迅速な変換を実現するには、具体的なコード例が必要ですが、近年、モバイル インターネットの発展とスマートフォンの普及に伴い、ミニ プログラムと H5 は不可欠なアプリケーション形式となっています。クロスプラットフォーム開発フレームワークとして、uniapp は一連のコードに基づいて小規模プログラムと H5 間の変換を迅速に実現し、開発効率を大幅に向上させます。この記事では、uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法と、具体的なコード例を紹介します。 1. uniapp uniaの紹介

ミニプログラム登録の操作方法 ミニプログラム登録の操作方法 Sep 13, 2023 pm 04:36 PM

ミニ プログラムの登録操作手順: 1. 個人 ID カード、法人営業許可証、法人 ID カードおよびその他の提出資料のコピーを準備します; 2. ミニ プログラム管理のバックグラウンドにログインします; 3. ミニ プログラム設定ページに入ります; 4. 「基本設定」を選択; 5. 出願情報を入力; 6. 出願資料をアップロード; 7. 出願申請を送信; 8. 審査結果を待ちます。出願が不合格の場合は、理由に応じて修正してください9. 出願のフォローアップ操作は可能です。

Python で簡単なチャット プログラムを作成するためのチュートリアル Python で簡単なチャット プログラムを作成するためのチュートリアル May 08, 2023 pm 06:37 PM

実装アイデア: チャット ルームのさまざまな機能を処理するために、スレッドのサーバー側を確立します。x02 クライアントの確立はサーバーよりもはるかに簡単です。クライアントの機能はメッセージの送受信と、特定の文字を特定の規則に従って入力するため、クライアント側では、メッセージ受信専用とメッセージ送信専用の 2 つのスレッドを使用するだけで、さまざまな機能を使用できます。使用しないでください。

WeChat ミニ プログラムのメンバーシップを取得する方法 WeChat ミニ プログラムのメンバーシップを取得する方法 May 07, 2024 am 10:24 AM

1. WeChat ミニ プログラムを開き、対応するミニ プログラム ページに入ります。 2. ミニ プログラム ページでメンバー関連の入り口を見つけます。通常、メンバーの入り口は下部のナビゲーション バーまたはパーソナル センターにあります。 3. メンバーシップポータルをクリックして、メンバーシップ申請ページに入ります。 4. 入会申込ページにて、携帯電話番号、氏名等の必要事項をご入力の上、送信してください。 5. ミニ プログラムは会員申請を審査します。審査に合格すると、ユーザーは WeChat ミニ プログラムの会員になることができます。 6. 会員になると、ユーザーはポイント、クーポン、会員限定アクティビティなど、より多くの会員権を享受できます。

See all articles