@comporell/nativescript-sms-receiver
添加插件描述
npm i --save @comporell/nativescript-sms-receiver

nativescript-sms-receiver

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

需求

最低 SDK 版本为 21。

安装

tns plugin add nativescript-sms-receiver

用法

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

将以下代码添加到 {your-app-module}/App_Resources/Android/src/main/AndroidManifest.xml

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

步骤 2. 将 googlePlayServicesVersion 添加到 before-plugins

将以下代码添加到 {your-app-module}/App_Resources/Android/before-plugins.gradle

project.ext {
googlePlayServicesVersion = "17.+"
}

步骤 3. 导入 SmsReceiver

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

步骤 4. 实例化 SmsReceiver

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

SmsReceiver.getInstance();

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

步骤 5. 开始 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 月