nativescript-fortumo-sms
一个提供对 Fortumo SMS 网关访问的 NativeScript 模块。
npm i --save nativescript-fortumo-sms
- 版本:1.1.4
- GitHub: https://github.com/mkloubert/nativescript-fortumo-sms
- NPM: https://npmjs.net.cn/package/nativescript-fortumo-sms
- 下载
- 昨日:0
- 上周:3
- 上个月:23
NativeScript fortumo SMS
一个 NativeScript 模块,提供对 Fortumo SMS 网关 的访问。
许可证
平台
- Android
安装
运行
tns plugin add nativescript-fortumo-sms
在您的应用项目内部以安装此模块。
Android
AndroidManifest.xml
确保在您的清单文件中定义以下权限、活动和其他数据
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Open Stores -->
<uses-permission android:name="org.onepf.openiab.permission.BILLING" />
<!-- Google -->
<uses-permission android:name="com.android.vending.BILLING" />
<!-- Nokia -->
<uses-permission android:name="com.nokia.payment.BILLING" />
<!-- Samsung -->
<uses-permission android:name="com.sec.android.iap.permission.BILLING" />
<!-- Fortumo -->
<uses-feature android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- SlideME -->
<uses-permission android:name="com.slideme.sam.manager.inapp.permission.BILLING" />
<!-- Skubit -->
<uses-permission android:name="com.skubit.BILLING" />
<application>
<!-- Amazon -->
<receiver android:name="com.amazon.device.iap.ResponseReceiver">
<intent-filter>
<action android:name="com.amazon.inapp.purchasing.NOTIFY"
android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY" />
</intent-filter>
</receiver>
<!-- Amazon -->
<!-- Fortumo -->
<receiver android:name="mp.MpSMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<service android:name="mp.MpService" />
<service android:name="mp.StatusUpdateService" />
<activity android:name="mp.MpActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- Fortumo -->
</application>
</manifest>
示例
要快速开始,请查看 示例/app/main-view-model.js 文件,了解其工作原理。
否则 ...
用法
包含
在您的代码-behind 中包含模块
var FortumoSMS = require('nativescript-fortumo-sms');
初始化
初始化环境
function onPageLoaded(args) {
FortumoSMS.init();
}
exports.onPageLoaded = onPageLoaded;
提交给 PayPal.init
函数的(可选)对象具有以下结构
属性
名称 | 描述 |
---|---|
onActivityResult | [可选] 对于用于调用其他模块逻辑的底层 Android 活动中的 Activity.onActivityResult 方法,提供逻辑 |
requestCode | [可选] 要使用的自定义请求代码(例如,用于 Activity.onActivityResult Android 方法)。默认:198612227 |
启动购买
function buyProduct(args) {
// configure
var purchase = FortumoSMS.newPurchase()
.setId('<PRODUCT-ID>')
.setName('test product')
.setSecret('<APP-SECRET>')
.setDisplayName('A test product')
.setAmount('1.95')
.setCurrency('USD');
// start purchase
purchase.start(function(cbResult) {
switch (cbResult.code) {
case 0:
// SUCCESS
break;
case 1:
// CANCELLED
break;
case 2:
// FAILED
break;
case 3:
// PENDING
break;
case -1:
// "unhandled exception"
break;
}
});
}
exports.buyProduct = buyProduct;
由 FortumoSMS.newPurchase
函数创建的 purchase
对象具有以下结构。
方法
名称 | 描述 |
---|---|
isConsumable | 获取产品是否可消费。示例:var c = purchase.isConsumable(); |
getAmount | 获取价格。示例:var a = purchase.getAmount(); |
getCreditsMultiplier | 获取积分乘数。示例:var m = purchase.getCreditsMultiplier(); |
getCurrency | 获取货币。示例:var c = purchase.getCurrency(); |
getId | 获取产品 ID。示例:var id = purchase.getId(); |
getName | 获取产品名称。示例:var n = purchase.getName(); |
getSecret | 获取应用程序密钥。示例:var s = purchase.getSecret(); |
setAmount | 设置价格。示例:payment.setAmount('1.25'); |
setCreditsMultiplier | 设置积分乘数。示例:purchase.setCreditsMultiplier(1.23); |
setCurrency | 设置货币。示例:purchase.setCurrency('USD'); |
setId | 设置产品 ID。示例:purchase.setId('<PRODUCT-ID>'); |
setIfConsumable | 设置产品是否可消费。示例:purchase.setIfConsumable(true); |
setName | 设置产品名称。示例:purchase.setName('My product'); |
setSecret | 设置应用程序密钥。示例:purchase.setSecret('<APP-SECRET>'); |
start | 开始购买流程。 |
start
提交给 purchase.start
方法的回调函数接收一个具有以下属性的对象
名称 | 描述 |
---|---|
账单状态 | 账单状态(如果 code = 0 ) |
code | 结果代码。 0 = 成功,-1 = 未处理的异常,1 = 已取消,2 = 失败,3 = 待处理 |
credit.amount | 信用额度金额(如果 code = 0 ) |
credit.currency | 信用额度名称(如果 code = 0 ) |
message.id | 消息ID(如果 code = 0 ) |
payment.code | 支付代码(如果 code = 0 ) |
price.amount | 价格金额(如果 code = 0 ) |
price.currency | 价格货币(如果 code = 0 ) |
product.name | 产品名称(如果 code = 0 ) |
service.id | 服务ID(如果 code = 0 ) |
sku | SKU(如果 code = 0 ) |
user.id | 用户ID(如果 code = 0 ) |
增强功能
日志记录
如果您想获取模块的日志输出,可以使用 FortumoSMS.addLogger
函数添加一个接收模块消息的回调
FortumoSMS.addLogger(function(msg) {
console.log('[nativescript-fortumo-sms]: ' + msg);
});