Использование Handoff с Watchkit для вывода приложения iPhone на передний план
У меня есть простой проект, в котором пользователь нажимает кнопку на Apple Watch и некоторые звуковые игры на iPhone, это достаточно легко сделать с помощью метода openParentApplication и иметь код handleWatchKitExtensionRequest в AppDelegate. Однако, хотя это работает в симуляторе, оно не будет работать на реальных устройствах, если iPhone-приложение еще не открыто. Я пытаюсь найти, если можно использовать другие методы, которые будут работать, даже если iPhone-приложение еще не открыто.
Теперь я прочитал ответ qaru.site/info/383415/..., чтобы можно было использовать Handoff для (частично), чтобы приложение телефона появилось на переднем плане, используя WKInterfaceController updateUserActivity:userInfo:webpageURL:
и UIApplicationDelegate application:continueUserActivity:restorationHandler
. Однако, как новый разработчик, я изо всех сил пытаюсь понять, как это сделать, без каких-либо примеров. Может ли кто-нибудь привести примерный код того, как это будет работать, где оба они используются вместе для запуска некоторого кода в приложении iphone?
Ответы
Ответ 1
- Зарегистрируйте имена типов активности в вашем приложении приложения iphone. Добавьте строку с именем NSUserActivityTypes и создайте массив. Например:
![enter image description here]()
-
Включите метод continueUserActivity: в AppDelegate. Например:
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
{
// Extract the payload
NSString *type = [userActivity activityType];
NSDictionary *userInfo = [userActivity userInfo];
// Assume the app delegate has a text field to display the activity information
NSLog(@"User activity is of type %@, and user info %@", type, userInfo);
restorationHandler(@[self.window.rootViewController]);
return YES;
}
-
В вашем контроллере watchkit awakeWithContext добавьте метод updateUserActivity.
[self updateUserActivity:@"com.co.YourApp.watchkitextension.activity" userInfo:@{@"yo": @"dawg"} webpageURL:nil];
Теперь вы должны увидеть значок приложения после открытия выбранного диспетчера просмотра в приложении часов.