WeChatアプレットカスタムコンポーネント——モールドボックスModal
6229 ワード
著作権声明:本文のオリジナル、転載は出所を明記してください.
https://segmentfault.com/a/11...
シリーズ記事:WeChatアプレットカスタムコンポーネント——ボトムメニューバーアクションシート
このカスタムmodalコンポーネントを書くのは、カスタムアクションSheetと同じで、主にオープン機能に使われます.いくつかのオープン能力は、ユーザーの授権などのbuttonに結び付けられなければなりません.この需要はよくありますが、現在は自動的にライセンスボックスをイジェクトするのはもうサポートされていません.だから、まずmodalユーザーをポップアップしたいです.Modalコンポーネントはまた、転送をサポートし、設定ページのオープン機能を開くとともに、送信フォーム機能を拡張します.
インストール
1.npmで取り付ける
プログラム開発ツールを直接使うnpmを構築は、次のような手順で導入してください.プロジェクトディレクトリにpackage.jsonファイルがあることを確認し、既存のステップ をスキップしました.インストール は、ウィジェット開発ツールの中から順に は、コンポーネントを使用するページ構成jsonに を使用する.
wx-miniprogram-modal倉庫の
wxmlファイル中
属性
データの種類
説明
オプション
標準値
ショー・スター
ボロア
modalの顕隠状態
必要とする
—
タイプ
String
modalのタイプ、オプション値:
—
show Cacel
ボロア
キャンセルボタンを表示するかどうか
記入する
false
confirm Text
String
決定ボタンのテキスト
記入する
はい
cancel Text
String
キャンセルボタンのテキスト
記入する
キャンセル
title
String
タイトル、書かない、または空の場合はtitleは表示されません.
記入する
なし
content
String
modalの内容
記入する
—
formItems
Aray
記入する
[]
レポートSubmit
ボロア
type=「prompt」の場合はformIdに戻りますか?
記入する
false
トリガーイベント
eventName
説明
complettee
modalが完了したときにトリガされるイベントは、
注意事項 フォーム項目属性 にリセットされる. 提案:プロジェクトの中でまず各typeが運ぶデータは、上記のコード例または以下の完全な例を参照してください. 例のデモ
WeChatウィジェットのカスタムコンポーネントの使用例の統合
https://segmentfault.com/a/11...
シリーズ記事:WeChatアプレットカスタムコンポーネント——ボトムメニューバーアクションシート
このカスタムmodalコンポーネントを書くのは、カスタムアクションSheetと同じで、主にオープン機能に使われます.いくつかのオープン能力は、ユーザーの授権などのbuttonに結び付けられなければなりません.この需要はよくありますが、現在は自動的にライセンスボックスをイジェクトするのはもうサポートされていません.だから、まずmodalユーザーをポップアップしたいです.Modalコンポーネントはまた、転送をサポートし、設定ページのオープン機能を開くとともに、送信フォーム機能を拡張します.
インストール
1.npmで取り付ける
プログラム開発ツールを直接使うnpmを構築は、次のような手順で導入してください.
$ npm init
$ npm i wx-miniprogram-modal
-> npm
を見つけてクリックして、構築が完了すると、あなたのプロジェクトディレクトリがminiprogram_npm
ディレクトリより多くなります.プロジェクト設定がチェックされていることを確認してください.{
"usingComponents": {
"mymodal": "wx-miniprogram-modal"
}
}
2.構築ツールを一切使用しない通常のウィジェットのインストールwx-miniprogram-modal倉庫の
npm
ディレクトリのコードを直接コピーしてプロジェクトのコンポーネントを置くディレクトリにコピーして、その後の使用方法はウィジェットのカスタムコンポーネントと同じです.同じように、ページ設定Jsonで宣言する必要があります.{
"usingComponents": {
"mymodal": "../components/modal/index" //
}
}
使用wxmlファイル中
jsファイル中//
Page({
data: {
showModal: false,
type: 'getUserInfo',
showCancel: false,
title: ' ',
content: '',
confirmText: ' ',
items: [{ label: ' ', name: 'name' }]
},
//
onComplete: function (e) {
// , modal ,
// , data showModal true,
// ,
this.setData({
showModal: false,
})
if (e.detail.confirm) {
//
// type
//
if (this.data.type === 'getUserInfo') {
if (e.detail.hasUserInfo) {
//
this.setData({
hasUserInfo: true,
userInfo: e.detail.userInfo
})
app.globalData.userInfo = e.detail.userInfo
} else {
wx.showToast({
title: ' ',
icon: 'none'
})
}
}
//
if (this.data.type === 'prompt') {
var formData = e.detail.formData
var formId = e.detail.formId
// eg.
// formData: {name: "Jaime"}
// formId: "the formId is a mock one"
}
//
if (this.data.type === 'openSetting') {
var authSetting = e.detail.authSetting
// eg. { "scope.userInfo": true}
}
} else {
//
}
},
onShareAppMessage: function (res) {
if (res.from === 'button') {
//
//
if (res.target.dataset.type === 'modalShare') {
this.setData({
showModal: false
})
}
}
return {
title: ' ',
path: '/page/index?id=123'
}
}
})
パラメータ属性
データの種類
説明
オプション
標準値
ショー・スター
ボロア
modalの顕隠状態
必要とする
—
タイプ
String
modalのタイプ、オプション値:
miniprogram_dist
、prompt
、getUserInfo
、share
、openSetting
必要とする—
show Cacel
ボロア
キャンセルボタンを表示するかどうか
記入する
false
confirm Text
String
決定ボタンのテキスト
記入する
はい
cancel Text
String
キャンセルボタンのテキスト
記入する
キャンセル
title
String
タイトル、書かない、または空の場合はtitleは表示されません.
記入する
なし
content
String
modalの内容
記入する
—
formItems
Aray
type='prompt'
の時に必ず記入するフォーム項目の属性、フォーマット:{label:'入力枠label',name:'キー名',val:'初期値(空でもいい)'',…]記入する
[]
レポートSubmit
ボロア
type=「prompt」の場合はformIdに戻りますか?
記入する
false
トリガーイベント
eventName
説明
complettee
modalが完了したときにトリガされるイベントは、
e.detail.confirm
によってキャンセルされるかどうか判断され、type='prompt'
によって携帯されるデータはe.detail.formData
およびe.detail.formId
を含む.type='getUserInfo'
の時に携帯するデータはe.detail.hasUserInfo
、e.detail.userInfo
です.type='openSetting'
の時に携帯するデータはe.detail.authSetting
です.具体的には例を見てください注意事項
type = 'prompt'
の場合、フォーム項目属性formItems="{{items}}"
を設定しなければならない.formItems
フォーマットは、[{label: ' ', name: 'name', val: ' ( )'},
{label: ' ', name: 'email'}, val: '']
に提出された後、フォームデータは初期値type='share'
ページライフサイクルは、onShareAppMessage
を宣言し、内部に以下のコードを追加する必要があります.カスタムコンポーネント内では転送バックを使用できないので、このモードボックスを閉じて、このモーダルボックスを書かずに転送ボタンをクリックしたら自動的に閉じられなくなります.if (res.from === 'button') {
if (res.target.dataset.type === 'modalShare') {
this.setData({
showModal: false
})
}
}
type='getUserInfo'
の場合、必要に応じて、許可modal初期表示状態を設定する.wx.getSetting
はユーザーが許可したかどうかを確認します.許可されていないショースターtusは最初にtrueに設定されています.許可されたショースターtusが初めにfalseに設定されていたら、マルチポップアップを避けることができます.WeChatウィジェットのカスタムコンポーネントの使用例の統合