ios – 从手表应用程序启动主机应用程序

前端之家收集整理的这篇文章主要介绍了ios – 从手表应用程序启动主机应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道在watch kit扩展中的openParentApplication api可以在后台打开主机应用程序,但不能在前台打开.

我也尝试使用NSExtensionContext的openUrl()api,如下所示:

NSExtensionContext *ctx = [[NSExtensionContext alloc] init];

NSURL *url = [NSURL URLWithString:@"myScheme://today"];
[ctx openURL:url completionHandler:^(BOOL success) {
    NSLog(@"fun=%s after completion. success=%d",__func__,success);
}];
[ctx completeRequestReturningItems:ctx.inputItems completionHandler:nil];

主机应用程序也没有启动.我错过了什么吗?或者是不可能的
从手表套件扩展程序启动主机应用程序?

解决方法

如果您需要在前台打开您的父应用程序,请使用Handoff!

https://developer.apple.com/handoff/

例:

在某个地方共享:

static let sharedUserActivityType = "com.yourcompany.yourapp.youraction"
static let sharedIdentifierKey = "identifier"

在你的手表上

updateUserActivity(sharedUserActivityType,userInfo: [sharedIdentifierKey : 123456],webpageURL: nil)

在你的iPhone应用程序代表:

func application(application: UIApplication,willContinueUserActivityWithType userActivityType: String) -> Bool {
    if (userActivityType == sharedUserActivityType) {
        return true
    }
    return false
}

func application(application: UIApplication,continueUserActivity userActivity: NSUserActivity,restorationHandler: ([AnyObject]!) -> Void) -> Bool {
    if (userActivity.activityType == sharedUserActivityType) {
        if let userInfo = userActivity.userInfo as? [String : AnyObject] {
            if let identifier = userInfo[sharedIdentifierKey] as? Int {
                //Do something
                let alert = UIAlertView(title: "Handoff",message: "Handoff has been triggered for identifier \(identifier)",delegate: nil,cancelButtonTitle: "Thanks for the info!")
                alert.show()
                return true
            }
        }
    }
    return false
}

最后(这一步很重要!!!):在你的Info.plist

猜你在找的iOS相关文章