【问题标题】:Launch a call when in background from a notification in iOS8从 iOS8 中的通知在后台启动呼叫
【发布时间】:2015-05-21 09:53:44
【问题描述】:

从iOS8开始,我们可以在UILocalNotification中显示一些提示选项

在我的应用程序中,我可以选择报警。据我所知,从后台发起呼叫是不可能的,那么你有什么建议?我可以启动应用程序然后触发呼叫吗?或者还有其他选择吗?

【问题讨论】:

  • 你可以启动应用并调用

标签: ios ios8 uilocalnotification


【解决方案1】:

如果您想在推送通知到达时在后台线程中执行操作(未挂起),您需要在推送通知有效负载中发送“content-available”:@“1”。有了这个,你就可以在后台处理应用程序

您可以在使用断点实现后进行测试。 当应用程序正在运行但在后台发送推送通知。

内容可用

【讨论】:

  • 这是一个简单的预定UILocalNotification
  • 如果您的应用正在使用位置、播放音频,您可以从后台调用方法......developer.apple.com/library/ios/documentation/iPhone/Conceptual/…
  • 好的,我们可以启动一个方法,但是我们不能启动电话应用来拨打电话。
  • 是的,我们不能为该用户打开应用程序,您可以将代码发送到服务器并致电该地区的警察
【解决方案2】:

所以,我找到了一个解决方案: 声明UIMutableUserNotificationAction时,应将其激活模式设置为UIUserNotificationActivationModeForeground:

UIMutableUserNotificationAction *notificationAction1 =[[UIMutableUserNotificationAction alloc] init];
    notificationAction1.identifier = @"identifier1";
    notificationAction1.title = @"identifier1";
    notificationAction1.activationMode = UIUserNotificationActivationModeForeground; //HERE the tip
    notificationAction1.destructive = NO;
    notificationAction1.authenticationRequired = NO;

然后在你的 AppDelegate 方法中:

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {
    if ([identifier isEqualToString:@"identifier1"]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
}
}

就是这样!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多