@global66/nativescript-sms-receiver
by global66 | v1.1.2
SMS OTP 自动完成。
npm i --save @global66/nativescript-sms-receiver

nativescript-sms-receiver

这是一个简单的库,用于使用新的 SMS Retriever API 在 Android 中接收短信。

需求

最低 SDK 版本为 21。

安装

tns plugin add nativescript-sms-receiver

使用

步骤 1. 在清单文件中注册 SMSBroadcastReceiver

将以下代码添加到 {你的应用模块}/App_Resources/Android/src/main/AndroidManifest.xml

<receiver android:name="com.pravinkumarputta.android.smsreceiver.SMSBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED"/>
</intent-filter>
</receiver>

步骤 2. 导入 SmsReceiver

import { SmsReceiver } from 'nativescript-sms-receiver';

步骤 3. 实例化 SmsReceiver

在开始 SMS 监听器之前调用此方法一次

SmsReceiver.getInstance();

注意:仅在页面加载后调用上述方法。

步骤 4. 开始 SMS 监听

// register Sms Listener to get SMS callbacks
SmsReceiver.getInstance().registerListeners(
function () {
// onSMSReceiverStarted
...
}.bind(this),
function (exception) {
// onSMSReceiverFailed
...
}.bind(this),
function (message) {
// onSMSReceived
...
// handle sms here
...

// deregister Sms Listener to avoid invalid operations
SmsReceiver.getInstance().deregisterListeners();
}.bind(this),
function () {
// onSMSReceiverTimeOut
...
}.bind(this)
);

// start sms receiver for single message
SmsReceiver.getInstance().startReceiver();

构造验证消息

您将发送到用户设备的验证消息。此消息必须

  • 不超过 140 字节
  • 以前缀 <#> 开头
  • 包含客户端发送回您的服务器以完成验证流程的一次性代码(请参阅生成一次性代码)
  • 以一个 11 位的哈希字符串结尾,该字符串标识您的应用程序(请参阅计算您的应用程序哈希字符串)

否则,验证消息的内容可以是您选择的任何内容。创建一个可以轻松提取一次性代码的消息很有用。例如,有效的验证消息可能如下所示

<#> Your ExampleApp code is: 123ABC78
FA+9qCX9VSu

(更多信息请访问 此处)

为您的应用程序生成 11 位的哈希字符串

使用以下方式实例化 SMSReceiver 以访问哈希字符串

SmsReceiver.getInstance().getHashString() // After instantiating SmsReceiver othersise it returns empty string

请求您的设备中保存的电话号码

SmsReceiver.getInstance().requestForPhoneNumber((phoneNumber) => {
// phoneNumber is null if no number is selected.
...
})

使用库

许可

Apache 许可版 2.0,2004 年 1 月