npm i --save @comporell/nativescript-sms-receiver
- 版本:1.0.6
- GitHub: https://github.com/comporell/nativescript-plugins
- NPM: https://npmjs.net.cn/package/%40comporell%2Fnativescript-sms-receiver
- 下载量
- 昨天: 0
- 上周: 2
- 上个月: 10
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 月