0

WKWatchConnectivityRefreshBackgroundTask を使用して iOS アプリから watchOS 3 アプリにデータを渡したい

転送中のデータを処理するために、watchOS アプリでコードを設定するにはどうすればよいですか?

たとえば、過去にこの iOS コードを使用して iOS アプリからメッセージを送信し、接続がない場合はコンテキストを送信しました。

func sendTable()
{
    let tableInfo: WatchWorkout = PhoneData().buildWatchTableData(Foundation.Date().refDays())
    let archivedTable: Data = NSKeyedArchiver.archivedData(withRootObject: tableInfo)
    if validSession
    {
        sendMessage([Keys.UpdateType : PhoneUpdateType.TableInfo.rawValue, Keys.Workout: archivedTable])
    }
    else
    {
        do
        {
            try updateApplicationContext([Keys.UpdateType : PhoneUpdateType.TableInfo.rawValue, Keys.Workout: archivedTable])
        }
        catch
        {
            print("Phone Session - error sending info: \(error)")
        }
    }
}


func sendMessage(_ message: [String : AnyObject], replyHandler: (([String : AnyObject]) -> Void)? = nil, errorHandler: ((NSError) -> Void)? = nil)
{
    print("Phone Session - phone sent message")
    session!.sendMessage(message,
        replyHandler:
        nil,
        errorHandler:
        {
            (error) -> Void in
            print("Phone Session - Error Message during transfer to Watch: \(error)")
        }
    )
}


func updateApplicationContext(_ applicationContext: [String : AnyObject]) throws
{
    print("Phone Session - phone sent context")
    if ((session) != nil)
    {
        do
        {
            try session!.updateApplicationContext(applicationContext)
        }
        catch let error
        {
            print("Phone Session - OPPS something wrong - context send failed")
            throw error
        }
    }
}

このデータの受信を時計のバックグラウンド タスクとしてコーディングする方法がわかりません。

誰かがサンプルコードを提供したり、リンクを投稿したりできますか? 唯一の Apple サンプル コードはあまり役に立ちません: https://developer.apple.com/library/prerelease/content/samplecode/WatchBackgroundRefresh/Introduction/Intro.html

ありがとう

グレッグ

4

2 に答える 2

1

クイック スイッチのサンプル コードは、watchOS 3 のリリースと共に更新され、WatchConnectivity バックグラウンド リフレッシュ タスクを処理する例が含まれています。

于 2016-07-24T22:11:32.017 に答える