2015-04-05 2 views

ответ

0

Рекомендуемый способ компании Apple для обмена информацией между iPhone и часы, чтобы использовать общий объект с помощью прикладной группы: Apple Watch Programming Guide, смотрите главу «Обмен данными с вашим Содержит IOS App».

Таким образом, после создания совместного приложения группы вы можете использовать applicationDidEnterBackground и applicationWillEnterForeground (или аналогичных методы, которые соответствуют вашим потребностям) AppDelegate для записи информации в этом разделяемом объекте Wich может быть прочитано расширением watchkit:

AppDelegate

func applicationDidEnterBackground(application: UIApplication) { 
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 

    // Shared object 
    let sharedDefaults = NSUserDefaults(suiteName: "group.com.example.myApp") 

    sharedDefaults.setBool(false, forKey: "foreground") 
    sharedDefaults.synchronize() 
} 

func applicationWillEnterForeground(application: UIApplication) { 
    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 

    // Shared object 
    let sharedDefaults = NSUserDefaults(suiteName: "group.com.example.myApp") 

    sharedDefaults.setBool(true, forKey: "foreground") 
    sharedDefaults.synchronize() 
} 

Watchkit Расширение

... некоторые где, где нужна информация ...

class MainInterfaceController: WKInterfaceController {  

    override init() { 
     // Initialize variables here. 
     super.init() 
    } 


    override func willActivate() { 
     // This method is called when watch view controller is about to be visible to user 
     super.willActivate() 

     let sharedDefaults = NSUserDefaults(suiteName: "group.com.example.myApp")! 

     let isForeground = sharedDefaults.boolForKey("foreground") 
     ... 

    } 

    override func didDeactivate() { 
     // This method is called when watch view controller is no longer visible 
     super.didDeactivate() 
    } 
} 
0

Как вы знаете, эту функцию отправляет запрос watchKit приложения для IOS App и handleWatchKitExtensionRequest IOS приложения будет поймать этот запрос. Таким образом, функция ниже имеет reply, которая отвечает за ваше соединение с информацией или данными. Поэтому в appDelegate вы должны указать любое значение для reply, а затем проверить это значение в контроллере watchKit.

class func openParentApplication(_ userInfo: [NSObject : AnyObject], 
           reply reply: (([NSObject : AnyObject], 
               NSError?) -> Void)?) -> Bool 

 Смежные вопросы

  • Нет связанных вопросов^_^