是否可以使用Apple Watch打开iPhone App?

时间:2015-04-01 18:55:07

标签: ios cocoa-touch watchkit apple-watch

我希望快速汇总用户在Apple Watch上收到的文字。然后,他们可以通过单击iWatch App内的按钮来阅读iPhone上的其余文本。我认为目前不可能,但如果是,请让我知道我需要做什么才能实现这一目标。

3 个答案:

答案 0 :(得分:2)

您可以在后台使用

打开iOS应用
+ (BOOL)openParentApplication:(NSDictionary *)userInfo
                        reply:(void (^)(NSDictionary *replyInfo,
                                        NSError *error))reply

您的iOS应用将获得

- (void)application:(UIApplication *)application
handleWatchKitExtensionRequest:(NSDictionary *)userInfo
              reply:(void (^)(NSDictionary *replyInfo))reply

因此,如果您的iOS应用已经在运行,您可以使用此功能将信息提供给应用。但是,您无法使iOS应用程序在前台运行,必须由用户启动。您可以将其余文本保存到共享设置和/或使用openParentApplication在后​​台将其传递到您的应用。然后,当用户打开您的iOS应用程序时,您可以向他们显示文本的其余部分。

答案 1 :(得分:1)

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

<强> https://developer.apple.com/handoff/

示例

某处共享两者:

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

在你的手表上:

updateUserActivity(sharedUserActivityType, userInfo: [sharedIdentifierKey : 123456], webpageURL: nil)
在App Delegate中的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中

enter image description here

答案 2 :(得分:0)

不能通过手表在iPhone上打开您的应用程序,但您可以在后台打开您的应用程序。

假设您想在手表上查看新闻,为此您需要数据。您可以通过iPhone应用获取该数据:openParentApplication:handleWatchKitExtensionRequest:

在这个答案中解释了如何做到这一点: How to send data from iphone to watchkit in swift