Можно ли открыть приложение для iPhone с помощью Apple Watch?

Я хочу показать краткую сводку текста, который пользователь получает на своих Apple Watch. Затем они могут прочитать остальную часть текста на своем iPhone, нажав кнопку в приложении iWatch. Я не думаю, что в настоящее время это возможно, но если это возможно, сообщите мне, что мне нужно сделать, чтобы выполнить это.


person Danger Veger    schedule 01.04.2015    source источник
comment
Чтобы начать работу, ваши Apple Watch должны быть подключены к сопряженному iPhone. Перейдите по этой ссылке — support.apple.com/en-in/guide/ смотреть/apdc40081790/watchos   -  person Chid    schedule 12.03.2020


Ответы (3)


Вы можете открыть приложение 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, вы можете показать ему остальную часть текста.

person Stephen Johnson    schedule 01.04.2015

Если вам нужно открыть родительское приложение на переднем плане, используйте 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 в App Delegate:

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(ах)

введите здесь описание изображения

person stk    schedule 04.04.2015
comment
У Apple Watch нет Handoff. Это функция iOS и OS X. - person egor.zhdan; 18.04.2015
comment
Мне не разрешено говорить об этом, но поверьте мне: вы можете выполнить Handoff с часов на другие устройства Apple. - person stk; 18.04.2015

Нет, открыть ваше приложение на iPhone через часы невозможно, НО вы можете открыть свое приложение в фоновом режиме.

Допустим, вы хотите просматривать новости на своих часах, и для этого вам нужны данные. Вы получаете эти данные через приложение для iPhone с помощью: openParentApplication: и handleWatchKitExtensionRequest:.

Как это сделать, объясняется в этом ответе: ">Как отправить данные с iphone на watchkit в swift

person Dejan Skledar    schedule 01.04.2015