ミニ プログラムを始めるには、この記事をお読みください
解説
この記事は、実戦での落とし穴体験と解決策についての記事です。同時に、これは私自身のプロジェクトのレビューでもあります。ここで皆さんと共有します。皆さんのお役に立てれば幸いです。記事が役に立ったと思ったら、「いいね!」をお願いします。ありがとうございます!ヘッドライナーであることをお許しください:)
ログイン認証
認証 (基本情報、携帯電話番号) では、ミニ プログラムにネイティブなボタン コンポーネントを使用する必要があります。 open を指定 - type の後のコールバックを通じてユーザー情報を取得できます。コードは次のとおりです:
index.wxml <view wx:if="{{!getUserInfo}}"> <view>你还未登录,请先授权登录</view> <button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo"> 授权登录 </button> </view> <view wx:if="{{getUserInfo && !getPhone}}"> <view>你还未绑定手机号,请先去绑定</view> <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> 立即绑定 </button> </view> index.js page({ // ... data: { hasUserInfo: false, canIUse: wx.canIUse('button.open-type.getUserInfo'), userInfo: {}, getUserInfo: false, getPhone: false, hasAuth: false }, onLoad: async function () { var that = this; // 查看是否授权 wx.getSetting({ success: function (res) { if (res.authSetting['scope.userInfo']) { wx.login({ success: loginRes => { // 获取到用户的 code 之后:loginRes.code wx.getUserInfo({ success: async function (res) { // 这里处理业务逻辑 } }) } }) } else { // 用户没有授权 } } }); }, bindGetUserInfo: function (e) { // 需要什么信息都从e中拿到 以下部分业务逻辑 if (e.detail.userInfo) { //用户按了允许授权按钮 var that = this; // 获取到用户的信息 wx.login({ success: async res => { const aUserModel = new UserModel(); const params = { code: res.code, encryptedData: e.detail.encryptedData, iv: e.detail.iv } const { data } = await aUserModel.login({ ...params }) if(data.roles){ // do ... } if (data.mobile) { // do ... } } }); //授权成功后,通过改变 isHide 的值,让实现页面显示出来,把授权页面隐藏起来 that.setData({ isHide: false }); } else { //用户按了拒绝按钮 wx.showModal({ title: '警告', content: '拒绝授权,您将无法使用小程序', showCancel: false }); } }, getPhoneNumber: async function (e) { if (e.detail.encryptedData) { //用户按了允许授权按钮 const aUserModel = new UserModel(); const params = { userId: userInfo.id, encryptedData: e.detail.encryptedData, iv: e.detail.iv } // do ... } else { //用户按了拒绝按钮 wx.showModal({ title: '警告', content: '拒绝授权,您将无法使用小程序', showCancel: false }) } }, // ... })
Routing
公式 Web サイトにアクセスして、ルート ジャンプのさまざまな方法を学ぶことができます。ここでは、遭遇する落とし穴を紹介します。NavigateTo ルート ジャンプは、最大までしか実行できません。レベルは10なので、使用する場合は史料が確実に必要かどうかを考慮する必要があります。なぜそんなことを言うのですか? シナリオ: リスト ページ (以下に示すように) では、ユーザーのプロフィールを変更できます。navigateTo を使用してジャンプする場合 (/page/archivesEdit?id=1923XXXX)、変更して保存するには navigateTo (/page/archivesList) を使用します。編集したり、前後にジャンプしたりできます。10 回クリックするとジャンプできなくなります。
解決策: 考えてみてください。2 つの redirectTo を使用できますか? redirectTo は、現在の履歴レコードを閉じて、次のページにジャンプします。その結果、変更ページにジャンプし、WeChat 独自の戻る機能をクリックすると、一覧ページをスキップしてホームページに直接ジャンプしました。このとき、テストガールは再度バグチケットを提出する必要があります。 。 。
完璧な姿勢: navigateTo と navigateBack を使用するだけです。編集して保存するときは、navigateBack を使用して戻ります。このようにして、ミニ プログラムのルーティング スタックはレイヤー 2 ~ 3 の間に配置されます。もちろん、リスト ページで再度インターフェイスを呼び出す必要がある場合があります。このとき、ルーティング ジャンプには、いくつかの重要なフック関数 onShow および onHide が用意されています。onShow 中にリスト インターフェイスを呼び出すことができます。
単純なジャンプを行うには、これら 2 つのフック関数で十分です。より複雑なシナリオでは、ストレージなどのアクセス パラメーターを保存することで、前のページに戻って操作できます。エレガントではありません。 、しかし、良い解決策はありません。
ストレージ
シナリオ: ストレージを取得するには、wx.getStorageSync('xxx') で ID を直接取得する 2 つの方法があります。リクエストを取得する前にリクエスト インターフェイスが送信された可能性があり、バグが発生しました。
wx.getStorageSync('xxx') は非同期なので、async/await を使用すると便利です
onLoad: async function (options) { const editListParams = await wx.getStorageSync('editListParams') this.findReportDetails(editListParams) }
webView
#あるページで #webview が使われていないのですが、当時はページに埋め込まれた iframe のようなものだと思っていました。新しいページを作成してから、このページに飛んで利用するのが正しい利用姿勢です。たとえば、ミニ プログラムに関連付けられた公式アカウントの記事にジャンプします:
other.wxml <navigator url="/pages/webView/webView" hover-class="none">跳转到webView</navigator> webView.wxml <web-view src="https://mp.weixin.qq.com/s/xxxx"></web-view>
request
WeChat 自体のリクエストはネットワーク上で使用できますが、カプセル化できない場合は、コードの冗長性が生じます。次のカプセル化を参照してください。
ajax.js import { baseURL } from '../config/interfaceURL' // baseUrl class AJAX { AJAX ({ url, methods = 'GET', data = {} }) { return new Promise((resolve, reject) => { this.request(url, resolve, reject, methods, data) }) } request (url, resolve, reject, methods, data) { wx.request({ url: baseURL + url, method: methods, data: data, header: { 'content-type': 'application/json' }, success: res => { const code = res.statusCode.toString() if (code.startsWith('2')) { resolve(res) } else { reject() const errorMessage = res.data.message AJAX.showError(errorMessage) } }, fail: err => { reject() AJAX.showError("网络异常,请稍后重试!") } }) } static showError (errorMessage) { wx.showToast({ title: errorMessage, icon: 'error', duration: 2000 }) } static serializeLink (obj) { // 序列化get请求 let temp = '?' for (let index in obj) { if(obj.hasOwnProperty(index)){ temp += (index + '=' + obj[index] + '&') } } return temp.substr(0, temp.length - 1) } } export default AJAX // model层调用 UserModel.js import AJAX from '../utils/AJAX' export class UserModel extends AJAX { // 小程序授权登陆 login (params) { return this.AJAX({ url: `/service/api/users/applet/login`, data: params, methods: 'POST' }) } } // control调用 index.js async onLoad (options){ const aUserModel = new UserModel() const params = { code: loginRes.code, encryptedData: res.encryptedData, iv: res.iv } const { data } = await aUserModel.login({ ...params }) // 其他 }
npm エコロジーとサードパーティ UI フレームワーク
WeChat アプレット プロジェクトには package.json ファイルがありません。直接初期化されます。したがって、npm install xxx を使用しても無駄です。したがって、フォルダーのルートディレクトリで npm init を自分で実行する必要があります。その後のみ、WeChat 開発者ツールを使用して npm をビルドでき、ビルドが成功するとディレクトリが生成されます。 Youzan の Vant ミニ プログラム バージョンを使用することをお勧めします。コミュニティがより活発で、これを使用する際に落とし穴が少なくなります。
双方向バインディング
vue の使用に慣れている開発者にとって、この v-model 構文のシュガーは欠落しています。フォームの双方向バインディングを扱うのは面倒な場合があります。したがって、ミニ プログラムで双方向バインディングについて話し合う必要があります。
file:index.js Page({ data: { list: [] }, onLoad: function (options) { // do ... }, onInput (e) { let value = e.detail.value let temp = e.target.dataset.name.split(',') let tempKey = temp[1] let tempIndex = temp[0] let tempSubIndex = temp[2] let targetKey = `list[${tempIndex}].children[${tempSubIndex}].${tempKey}` this.setData({ [targetKey]: value }) } }) file:index.wxml <block wx:for="{{item.children}}" wx:for-item="subItem" wx:key="{{index}}"> <view class="td" style="height: {{ 100 / item.children.length}}%;"> <input placeholder-style="color:#ccccccc;" type="text" placeholder="未填写" value="{{subItem.testResult}}" data-name="{{idx}},testResult,{{index}}" bindinput="onInput"/> </view> </block>
イメージのダウンロードとイメージのダウンロードの認証
ここでのシナリオは、固定静的リソース イメージをダウンロードすることです。ネットワーク イメージは、ダウンロードを使用して構成する必要があります。有効になる前にドメイン名を変更する方法は次のとおりです:
savePhoto () { const _this = this; wx.getImageInfo({ src: '/static/images/home/Qr.png', success: function (res) { wx.saveImageToPhotosAlbum({ filePath: res.path, success (result) { _this.setData({ show: false }); wx.showToast({ title: '保存成功', icon: 'success', duration: 2000 }) }, fail (err) { if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { wx.openSetting({ success (settingdata) { if (settingdata.authSetting['scope.writePhotosAlbum']) { _this.savePhoto() } else { wx.showToast({ title: '获取权限失败,无法保存图片', icon: 'success', duration: 2000 }) } } }) } } }) } }) }
Others
textarea には、ios のパディング値が含まれます。これは私にとって罠です。すべてのテキストエリアまたはすべての入力を使用してフォームに入力します。 他にも、IE に似たスタイルの問題がかなり多くあります。 ! !いくつかの違いを解決するには、flex float をさらに使用してください~
結論
記事のすべての点は、小さなプログラムを開発するときに遭遇する問題です。私の能力には限界があります。 、コメント エリアで誰でも質問したり、交換したり、学んだりすることができます。また、Haxiangjia 公式アカウントをフォローして、より質の高い記事を入手することもできます。 推奨チュートリアル: 「
WeChat ミニ プログラム 」
以上がミニ プログラムを始めるには、この記事をお読みくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Xianyu の公式 WeChat ミニ プログラムが静かに開始されました。ミニ プログラムでは、プライベート メッセージを投稿して購入者/販売者とコミュニケーションしたり、個人情報や注文を表示したり、商品を検索したりすることができます。プログラム、見てみましょう。 Xianyu WeChat アプレットの名前は何ですか? 回答: Xianyu、アイドル取引、中古品販売、評価、リサイクル。 1. ミニ プログラムでは、アイドル メッセージの投稿、プライベート メッセージを介した購入者/販売者とのコミュニケーション、個人情報と注文の表示、指定された商品の検索などができます。 2. ミニ プログラム ページには、ホームページ、近くに、アイドル投稿、メッセージ投稿、私の投稿 5つの機能; 3. 使用したい場合は、購入する前に WeChat 支払いを有効にする必要があります。

WeChat アプレットが画像アップロード機能を実装 モバイル インターネットの発展に伴い、WeChat アプレットは人々の生活に欠かせないものになりました。 WeChat ミニ プログラムは、豊富なアプリケーション シナリオを提供するだけでなく、画像アップロード機能などの開発者定義の機能もサポートします。この記事では、WeChat アプレットに画像アップロード機能を実装する方法と具体的なコード例を紹介します。 1. 準備作業 コードを書き始める前に、WeChat 開発者ツールをダウンロードしてインストールし、WeChat 開発者として登録する必要があります。同時に、WeChat についても理解する必要があります。

WeChat ミニ プログラムでドロップダウン メニュー効果を実装するには、特定のコード サンプルが必要です。モバイル インターネットの普及に伴い、WeChat ミニ プログラムはインターネット開発の重要な部分となり、ますます多くの人が注目し始めています。 WeChat ミニ プログラムを使用します。 WeChat ミニ プログラムの開発は、従来の APP 開発よりも簡単かつ迅速ですが、特定の開発スキルを習得する必要もあります。 WeChat ミニ プログラムの開発では、ドロップダウン メニューが一般的な UI コンポーネントであり、より良いユーザー エクスペリエンスを実現します。この記事では、WeChat アプレットにドロップダウン メニュー効果を実装し、実用的な機能を提供する方法を詳しく紹介します。

WeChat ミニ プログラムでの画像フィルター効果の実装 ソーシャル メディア アプリケーションの人気に伴い、人々は写真にフィルター効果を適用して、写真の芸術的効果や魅力を高めることがますます好まれています。画像フィルター効果は WeChat ミニ プログラムにも実装でき、より興味深く創造的な写真編集機能をユーザーに提供します。この記事では、WeChat ミニ プログラムに画像フィルター効果を実装する方法を紹介し、具体的なコード例を示します。まず、WeChat アプレットのキャンバス コンポーネントを使用して画像を読み込み、編集する必要があります。 Canvasコンポーネントはページ上で使用できます

WeChat アプレットを使用してカルーセル スイッチング効果を実現する WeChat アプレットは、シンプルで効率的な開発と使用特性を備えた軽量のアプリケーションです。 WeChat ミニ プログラムでは、カルーセル スイッチング効果を実現することが一般的な要件です。この記事では、WeChat アプレットを使用してカルーセル切り替え効果を実現する方法と、具体的なコード例を紹介します。まず、カルーセル コンポーネントを WeChat アプレットのページ ファイルに追加します。たとえば、<swiper> タグを使用すると、カルーセルの切り替え効果を実現できます。このコンポーネントでは、 b を渡すことができます。

Xianyu の公式 WeChat ミニ プログラムが静かに開始され、アイドルアイテムを簡単に公開および交換できる便利なプラットフォームをユーザーに提供します。ミニ プログラムでは、プライベート メッセージを介して購入者または販売者とコミュニケーションしたり、個人情報や注文を表示したり、欲しい商品を検索したりできます。では、WeChat ミニ プログラムでは Xianyu とはいったい何と呼ばれているのでしょうか? このチュートリアル ガイドで詳しくご紹介しますので、知りたいユーザーは、この記事に従って読み続けてください。 Xianyu WeChat アプレットの名前は何ですか? 回答: Xianyu、アイドル取引、中古品販売、評価、リサイクル。 1. ミニ プログラムでは、アイドル メッセージの投稿、プライベート メッセージを介した購入者/販売者とのコミュニケーション、個人情報と注文の表示、指定された商品の検索などができます。 2. ミニ プログラム ページには、ホームページ、近くに、アイドル投稿、メッセージ投稿、マイ投稿の5つの機能、3.

PHPを使用してWeChatアプレットの中古取引機能を開発するにはどうすればよいですか?人気のモバイル アプリケーション開発プラットフォームとして、WeChat アプレットはますます多くの開発者によって使用されています。 WeChat ミニ プログラムでは、中古取引が一般的な機能要件です。この記事では、PHP を使用して WeChat アプレットの中古取引機能を開発する方法と、具体的なコード例を紹介します。 1. 準備作業 開発を開始する前に、以下の条件が満たされていることを確認する必要があります。ミニ プログラムの AppID の登録やミニ プログラムのバックグラウンドでの設定など、WeChat ミニ プログラムの開発環境がセットアップされていること。

WeChat ミニ プログラムで画像回転効果を実装するには、特定のコード サンプルが必要です。WeChat ミニ プログラムは、ユーザーに豊富な機能と優れたユーザー エクスペリエンスを提供する軽量のアプリケーションです。ミニ プログラムでは、開発者はさまざまなコンポーネントと API を使用して、さまざまな効果を実現できます。その中で、画像回転効果は、ミニプログラムに興味と視覚効果を加えることができる一般的なアニメーション効果です。 WeChat ミニ プログラムで画像の回転効果を実現するには、ミニ プログラムが提供するアニメーション API を使用する必要があります。以下は、その方法を示す具体的なコード例です。
