問題タブ [cksubscription]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - CKSubscription を使用して複数の列の情報を送信する方法
CKNotificationInfo() と CKNotificationInfo.alertBody を使用して、CKSubscription を機能させることができます。というわけで、ひとつの情報を発信できます。CKSubscription にメッセージ、ユーザー名、場所などを辞書形式でユーザーに送信させようとしています。私は CKNotificationInfo.alertLocaliztionKey と CKNotificationInfo.alertLocaliztionArgs に手を出しましたが、うまくいかないようです。CKSubscription を機能させるのにこれほど面倒なことはないはずなので、小さな何かが欠けているように感じます。
ios - 各 iCloud ユーザーが CloudKit でユーザー固有のサブスクリプションを保存するにはどうすればよいですか?
パブリック CloudKit データベースでサブスクリプションを作成する際に問題が発生しています。最初の iCloud ユーザーのサブスクリプションを保存する場合、コードは正常に機能しますが、2 番目の iCloud ユーザーの同じレコード タイプに対してわずかに異なるサブスクリプションを保存しようとすると失敗します。
サブスクリプションを保存するコードは次のとおりです (Swift での回答も問題ありません)。
_ckUserID
CKRecordID
現在の iCloud ユーザーを表す です。現在の CloudKit コンテナーのパブリック データベースへの参照です
_ckdatbase
。CKDatabase
このコードがユーザー A のデバイス A で実行されると、サブスクリプションは問題なく保存されます。
次に、このコードをデバイス B でユーザー B を使用して実行すると、ログに次のメッセージが表示されてサブスクリプションが失敗します。
2016-04-19 11:38:42:504 MyApp[560:f03] ユーザーのアクセス サブスクリプションの更新中にエラーが発生しました: <CKError 0x147830530: "Partial Failure" (2/1011); "一部のサブスクリプションを変更できませんでした"; uuid = 98E9F99A-C4F6-4488-8087-45285A7C1DB1; コンテナー ID = "iCloud.com.blah.MyApp"; 部分的なエラー: { access-_df09e8908eeb9b9f12ebbe935e389d51 = <CKError 0x14664b4e0: "不明なアイテム" (11/2003); サーバー メッセージ = "必要なレコード タイプが見つかりませんでした: _sub_trigger_sub_08b399dc1448e58993a967b704a07ee0"> }>
access
レコード タイプには、iCloud ユーザー ID を表す CKRecordID への参照であるフィールドuser
があります。
ここでの私の目標は、現在のユーザーに固有のレコードがこのテーブルに追加、更新、または削除されるたびにアプリが認識できるようにする、各ユーザーのサブスクリプションを持つことです。
このレコード タイプの 2 番目のユーザーからの 2 番目のサブスクリプションを保存できないのはなぜですか? ユーザーIDに基づいて、各サブスクリプションに独自の一意のIDも与えています。
swift - CloudKit CKFetchNotificationChangesOperation は、iCloud からログアウトしているときに受信した通知をフェッチしません
私のアプリには、変更を記録するための CKSubscriptions があります。変更が発生すると、プッシュ通知が受信され、最後に保存された serverChangeToken を使用して CKFetchNotificationChangesOperation が作成され、最新の通知が取得されます。
設定アプリから iCloud をログオフする場合を除いて、これはすべて正常に機能します。iCloud からログオフすると、ログオフしてから iCloud に再度ログインしてアプリを再起動するまで、受信した通知をアプリが取得しません。しかし、serverChangeToken のデータを確認すると、iCloud からログアウトする前に保存されたデータと同じです。アプリを再起動すると新しい通知を受け取ることもできますが、ログオフすると、受け取ったすべての通知が失われます。
iCloudからログオフすると、CKSubscriptionプッシュ通知が何らかの形でドロップされるかどうかは誰にもわかりませんか? CKFetchNotificationChangesOperation は、提供された serverChangeToken に基づいてすべての通知をフェッチすることになっているため、これはあまり意味がありません。
ios - Objective-c で cksubscription を削除するにはどうすればよいですか?
申し訳ありませんが、平易な英語で答えを見つけることができません。または、少なくとも私が見るすべての答えは、私が持っていてはならない一定量の知識を持っていることを前提としています. を削除するだけですCKSubscription
。どうすればいいですか?すべてのヒントとヘルプは大歓迎です。
ios - CKQuerySubscriptions は sharedCloudDatabase ではサポートされていません
新しく導入された共有 CloudKit データベースがサポートされていないことがドキュメントに記載されていることに気付きCKQuerySubscription
ました (以前の iOS バージョンでは、これらは と呼ばれていましたCKSubscription
)。つまり、非公開で共有されているレコードが変更されたときにユーザーに通知することはできないということです。大きな失望。誰かがこの問題に遭遇しましたか?
macos - CloudKit OSX のレコード ID から実際のオブジェクトを取得する
CKSubscription を使用して変更をサブスクライブしようとしています。私は非常に一般的で不完全なAppleのドキュメントに従っています。 Apple ドキュメントへのリンク
didReceiveRemoteNotification
メソッドを介して自分のアプリに送信された Record ID を取得するポイントがあり、次のAppDelegate
コードを使用して Record Id: を取得しています。
CKNotification を Cloudkit に保存する実際のオブジェクトに変換するにはどうすればよいですか? 別のフェッチを実行する必要がありますか、それともキャストする必要がある CKNotification に含まれるデータですか。