WeChat アプレットの携帯電話番号クイック検証コンポーネントを呼び出す方法

目次

1. テスト環境

2. 問題となる現象

3. まとめ


携帯電話番号認証コンポーネント(クイック認証コンポーネント、リアルタイム認証コンポーネントを含む)では、イベントをコールバックすることはできません 結論から先に言いますと、正しい使い方は以下の通りです。

<!-- 手机号快速验证组件 -->
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"></button>
<!-- 手机号实时验证组件 -->
<button open-type="getRealtimePhoneNumber" @getrealtimephonenumber="getPhoneNumber"></button>

1. テスト環境

ウィンドウズ10

WeChat 開発者ツール (1.06.2307260win32-x64) 基本ライブラリ (3.0.1[1028])

iPhone XR(iOS15.2.1)

WeChat (8.0.40)

HBuilder X(3.8.12.20230817)

2. 問題となる現象

最近、WeChat は携帯電話番号取得コンポーネントを正式に更新しました. 携帯電話番号取得コンポーネントは 8 月 26 日から有料になりました. 詳細については公式ドキュメントを参照してください. 携帯電話番号リアルタイム認証コンポーネントを使用しています. 公式例は:

<button open-type="getRealtimePhoneNumber" bindgetrealtimephonenumber="getrealtimephonenumber"></button>

uniappが開発した小型プログラムを利用し、これまで使用していた携帯電話番号取得コンポーネントを携帯電話番号高速取得コンポーネントと呼び、名称と発信方法が変更になりましたが、以前の方法もそのままご利用いただけます。

<button open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">授权获取手机号</button>

公式の例に従って前のメソッドを変更します。

<button open-type="getRealtimePhoneNumber" @bindgetrealtimephonenumber="onGetPhoneNumber">授权获取手机号</button>

その結果、開発者ツールでは反応がなく、ネットで検索したところ、 WeChatオープンコミュニティの記事で次のように紹介されていました。

@記号はありません。このメソッドにはバージョン要件があり、wx.canIUse("button.open-type.getRealtimePhoneNumber")を使用してサポートされているかどうかを判断し、導入に従ってコードを修正し、onLoadで判断を追加することもできます。

onLoad() {
    console.log(wx.canIUse("button.open-type.getRealtimePhoneNumber"));
}

 コンソールの出力結果は true ですが、テストはまだ応答しませんが、コンソールは他の情報を出力します。

どうしてそのような方法がないのでしょうか?開発者ツールに問題があるのでしょうか?その後、ツールのバージョンを上げましたが、やはり動作せず、実機で確認したところ、SMS認証コードを入力しても応答がありませんでした。ユニアプリの問題でしょうか?uniapp からの公式の質問は 1 つだけあり、まだ誰も答えていません。このとき、私は少しイライラしていました。落ち着くために水を飲みました。この機能は数ヶ月前からリリースされています。uniapp に問題があれば、それは大惨事になるはずです。冷静に考えて、からのコードを確認してください最初からやり直して、通常に使用できるコード(つまりメソッドの前)に戻し、携帯電話番号クイック認証コンポーネントの公式ドキュメントを比較したところ、公式の例に @ 記号がないことに突然気づきました:

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>

コードには@マークが付いていますが、正常に使用できます。慎重に比較した結果、バインドが@に置き換えられ、最初のようにコードを修正しました。テストはパスし、実機では問題ありませんでした。 , 公式環境に公開しても問題ありません。

3. まとめ

この問題が発生する場合、最初に携帯電話番号取得コンポーネントを使用したときにコードがインターネットから直接コピーされたため、そのようなプロセスを経ていませんでしたが、遅かれ早かれ置き換えられるようです。

おすすめ

転載: blog.csdn.net/caicaimaomao/article/details/132641168