信标触发 actionPayload 可用的动作?

Beacon trigger actionPayload available actions?

我刚开始学习 MFP 中的信标,对触发器的 actionPayload 有疑问。知识中心给出 JSON 示例

"actionPayload" : {"alert" : "Avail lowest interest rate of just 7.5% on home loans!"}

我正在努力实现:

提前致谢!

如果您按原样使用 iOSNativeiBeacons/iOSNativeiBeaconsLibrary/WLBeaconsLocationManager.m 中的以下函数,则信标触发器的 actionPayload 可以是本地警报或对适配器过程的调用。 adapter调用的细节在后面给出。

-(void) fireTriggerAction:(WLBeaconTrigger *)beaconTrigger forWLBeacon:(WLBeacon *)wlBeacon
{
    NSString *branchName = [wlBeacon.customData objectForKey:@"branchName"];
    NSString *alertMessage = [beaconTrigger.actionPayload objectForKey:@"alert"];
    if(alertMessage != nil) {
        alertMessage = [alertMessage stringByReplacingOccurrencesOfString:@"$branchName" withString:branchName];
        NSString *alertTitle = [WLBeaconTrigger beaconTriggerTypeToString:beaconTrigger.triggerType];
        [self sendLocalNotification:alertTitle withMessage:alertMessage];
    } else {
        NSString *adapterName = [beaconTrigger.actionPayload objectForKey:@"adapterName"];
        NSString *procedureName = [beaconTrigger.actionPayload objectForKey:@"procedureName"];
        NSString *userName = [self getUserName];
        [self invokeAdapterProcedure:adapterName withProcedure:procedureName forUser:userName forBranch:branchName];
    };
}

在启用信标的银行应用程序场景中,假设我们想要在高价值客户进入分行的贷款部分时通知银行分行经理,然后可以注册以下触发器并将其与贷款部分信标相关联.

信标触发器:

{
    "triggerName" : "EnterLoanSection",
    "triggerType" : "Enter",
    "proximityState" : "Near",
    "actionPayload" : {
        "adapterName" : "BeaconsAdapter",
        "procedureName" : "sendNotificationToBranchManager"
    }
}

上面触发器中的 actionPayload 指定适配器 BeaconsAdapter 的过程 sendNotificationToBranchManager 应该在进入关联信标的附近时被调用。该过程将在适配器文件中定义如下:

BeaconsAdapter.xml:

<procedure name="sendNotificationToBranchManager" />    

BeaconsAdapter-impl.js:

function sendNotificationToBranchManager(userName, branchName) {
    var notification = {};
    notification.message = {};
    notification.message.alert = "HNI customer, " + userName + ", is in loan-section of " + branchName + " branch.";
    notification.settings = {};

    WL.Server.sendMessage("ManagerApp", notification);

    return {
        result : "Notification sent"
    };
}

关于"How could I define callback function for the trigger?",您可以在iOSNativeiBeacons/iOSNativeiBeaconsLibrary/WLBeaconsLocationManager.m

中修改-(void) fireTriggerAction:(WLBeaconTrigger *)beaconTrigger forWLBeacon:(WLBeacon *)wlBeacon