2016-04-14 5 views
1

Я хочу задать вопрос о подключении часов.Передача данных с iPhone на iWatch с помощью рамки для подключения часов

1) Можно ли считывать данные с iPhone при открытии приложения iWatch. Я не хочу ждать, чтобы открыть приложение для iPhone для передачи данных в iWatch.

2) Можно ли создать экран входа в систему (для получения пользовательского ввода из текстовых полей) на iWatch

3) iWatch имеет устройство токенов и идентификатор поставщика? Как получить информацию от iWatch?

4) Можно ли прочитать базу данных iPhone приложения (например, SQL облегченной дб на iPhone приложение) от iWatch применения

5) Как передать словарь с iPhone приложение для iWatch приложения. Поделитесь любым примером plz.

+0

Пожалуйста, ограничивайте свое сообщение единственным вопросом и убедитесь, что вы спрашиваете, не вне темы. Подробнее см. [Ask]. Благодаря! –

ответ

2

1) Можно ли считывать данные с iPhone при открытии приложения iWatch. Я не хочу ждать, чтобы открыть приложение iPhone для передачи данных в iWatch.

ДА, используя любой из фоновых методов (transferUserInfo:, transferCurrentComplicationUserInfo:, transferFile:, updateApplicationContext:infoToSend) вы можете проснуться iPhone приложение и получить вещи сделано. наоборот, невозможно. Приложение для просмотра должно быть открыто.

2) Можно ли создать логин экран (чтобы получить пользовательский ввод из текстовых полей) на iWatch

НЕТ, текстовые поля недоступны в WatchOS2.

3) iWatch имеет идентификатор устройства и идентификатор продавца? Как получить эту информацию от iWatch?

С watchOS 1 идентификатор поставщика и рекламный идентификатор были на самом деле на iPhone, так как расширение QuickKit на iPhone.

С watchOS 2 вам нужно будет синхронизировать идентификатор поставщика и идентификатор рекламы с iPhone на Watch и использовать его там. И вам нужно будет поддерживать идентификатор поставщика и идентификатор рекламы в актуальном состоянии.

4) Можно ли прочитать базу данных iPhone приложения (например, SQL облегченной дб на iPhone приложение) из приложения iWatch

Это было возможно в WatchKit, но с введением группы WatchConnectivity Framework App на основе общего контейнера имеет был ограничен. Я уверен в UserDefualts, но еще не тестировал файлы.

5) Как перенести словарь из приложения iPhone в приложение iWatch. Поделитесь любым примером plz.

Есть два способа выполнить эти вещи:

Использование TransferUserInfo

С помощью этого метода, часы будут получать словарь каждый раз, что означает, что если часы неактивны и iphone посылает 3 словарь в течение этого времени Период. Когда будет активирован просмотр, он будет получать все 3 словаря несколькими вызовами методов делегата - - (void)session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *, id> *)userInfo со стороны наблюдателя.

-(void)sendDictionaryToWatch:(NSDictionary*)infoToSend{ 
     if([WCSession isSupported]){ 
      WCSession *aDefaultSession   = [WCSession defaultSession]; 
      aDefaultSession.delegate = self; 
      if([aDefaultSession isPaired] && [aDefaultSession isWatchAppInstalled]){ 
       [aDefaultSession activateSession]; 
       [aDefaultSession transferUserInfo:infoToSend]; 
      } 
     } 
    } 

Использование updateApplicationContext: ошибка:

В этом случае устройство будет посылать последний контекст для просмотра на активации. Это означает, что можно сказать, что если вы отправили три Info назад, тогда, когда Watch Activated, он получит только последний, а не предыдущий в методе делегирования - -(void)session:(WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext.

-(void)sendDictionaryToWatch:(NSDictionary*)infoToSend{ 
    if([WCSession isSupported]){ 
     WCSession *aDefaultSession   = [WCSession defaultSession]; 
     aDefaultSession.delegate = self; 
     if([aDefaultSession isPaired] && [aDefaultSession isWatchAppInstalled]){ 
      [aDefaultSession activateSession]; 
      [aDefaultSession updateApplicationContext:infoToSend error:nil]; 
     } 
    } 
} 
+0

Спасибо за ответы. @Mrug Для моего первого вопроса я использовал метод updateApplicationContext и получил словарь на стороне просмотра, но для этого мне нужно сначала (сначала открыть) приложение для iPhone. Я хочу получать данные из приложения iPhone в iWatch без пробуждения (открытого) приложения для iPhone. Является ли это возможным? Для моего третьего вопроса, что вы хотите рассказать с помощью «sync»? Может привести пример кода для получения идентификатора поставщика и маркера устройства на стороне iWatch? – oakt

+0

@oaktuna: Нет. Вам не нужно будет открывать iPhone. Ваше приложение будет просыпаться только в фоновом режиме. В случае Watch, как я сказал, его обязательно открыть приложение. относительно синхронизации, я имею в виду вашу собственную логику для передачи идентификатора поставщика с устройства для просмотра. вы можете использовать любой способ передачи, который я объяснил. Могу ли я знать нижний план для чего? – Mrug