如何使用x-callback-url?

时间:2017-07-24 08:10:57

标签: x-callback-url

我想打开一个应用程序并从中返回一些返回值,如成功或失败。怎么做?

来自文档

[scheme]://[host]/[action]?[x-callback parameters]&[action parameters]

问题1:

我应该在[动作参数]中放置什么?这是强制性的吗?

发送App A

- (IBAction)openReceivingAppBButtonPressed:(id)sender {

    NSString *xcallBack = @"x-callback-url/payment?&amount=1.00";
    NSString *URLEncodedText = [xcallBack stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *ourURL = [NSURL URLWithString:[@"receivingAppB://" stringByAppendingString:URLEncodedText]];
    if([[UIApplication sharedApplication] canOpenURL:ourURL]){
        [[UIApplication sharedApplication] openURL:ourURL];
    }
}

接收App B

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

    [self returnToSendingAppAWithResponse];

    return true;
}
-(void)returnToSendingAppAWithResponse{
    NSString *xcallBackSuccess = @"success";

    NSString *URLEncodedText = [xcallBackSuccess stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *ourURL = [NSURL URLWithString:[@"sendingAppA://" stringByAppendingString:URLEncodedText]];
    if([[UIApplication sharedApplication] canOpenURL:ourURL]){
        [[UIApplication sharedApplication] openURL:ourURL];
    }
}

问题2:

在接收应用程序中,调用发送应用程序A的另一个openURL调用以返回成功消息是否正确?

我能够实现我想要的目标。但只是怀疑这是否是使用x-callback-url的正确方法。 x-callback-url似乎对我没用。

1 个答案:

答案 0 :(得分:0)

似乎上述方法是正确的做法。

x-callback只是一个"协议"格式化NSURL以简化接收器端的数据处理,并允许源应用程序接收正确的回调函数。 (例如,应该呼叫哪个动作名称)