2016-04-10 3 views
1

Я пытаюсь выяснить правильный подход для обмена 10+ фотографий из приложения IOS в приложение Apple Наблюдать за использованием watchOS 2.Создание архитектуры для обмена фотографий с Apple, часы OS2

Я хочу передать эти изображения в фоновом режиме, так что пользователю не нужно открывать приложение iOS для просмотра фотографий.

Я пытался запрашивая фотографии из Facebook и отправлять их в часы через transferUserInfo(), но полезная нагрузка слишком велика:

FBSDKGraphRequest(graphPath: "me/photos?limit=2", parameters:["fields": "name, source"]).startWithCompletionHandler({ (connection, result, error) -> Void in 
    if (error != nil){ 
     print(error.description) 
    } 
    else { 
     var arr = [NSData]() 

     for res in result["data"] as! NSArray { 
      if let string = res["source"] as? String { 
       if let url = NSURL(string: string) { 
        if let data = NSData(contentsOfURL: url){ 
         arr.append(data) 
        } 
       } 
      } 
     } 
     print(arr) 
     if arr.count > 0 { 
      self.session.transferUserInfo(["image" : arr]) 
     } 

    } 
}) 

Любые идеи, как я должен идти об этом?

ответ

2

Правильный метод упоминается в документации WCSession:

Используйте метод transferFile:metadata: для передачи файлов в фоновом режиме. Используйте этот метод в тех случаях, когда вы хотите отправить больше, чем словарь значений. Например, использует этот метод для отправки изображений или файлов на основе документов.

Изображения будут асинхронно доставлены на часы на фоне потока. session:didReceiveFile: будет вызываться, когда часы успешно получат изображение.

Обязательно укажите (дату) метаданные с изображением и удалите все существующие изображения с часов, которые больше не являются частью десяти последних загрузок Facebook.

+0

Да, это то, что я тоже переключил, однако я все еще пытаюсь понять, как перейти от строки jpg url в файл, который можно перенести. – Andy

+0

Либо используйте поле «url» и загрузите фотографию из Facebook в файл, либо используйте поле «source» для декодирования фотоданных, затем сохраните это изображение в файле. Затем используйте URL-адрес этого локального сохраненного изображения, чтобы перенести его на часы. –