問題タブ [cknotification]

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.

0 投票する
1 に答える
270 参照

ios - CKQueryNotification の理由が RecordUpdated であるのに、recordFields が nil である可能性はありますか?

println("queryNotification.recordFields.keys: \(queryNotification.recordFields?.keys)")

このログがどのように可能かわかりませんか? レコードが更新されたという通知を受け取った場合、変更されたフィールドが少なくとも 1 つ必要ですよね? ところで、他のデバイスの 1 つのフィールドを変更しているので、nil の理由recordFieldsがわかりません。少なくとも 1 つのキー値が必要です。

ここに画像の説明を入力

0 投票する
2 に答える
1019 参照

ios - CloudKit レコードが更新されたことを別のデバイスに通知するにはどうすればよいですか?

CKSubscription のドキュメントには、次のように記載されています。レコードの変更によってサブスクリプションが起動すると、サーバーは、レコードに元の変更を加えたデバイスを除く、そのサブスクリプションを持つすべてのデバイスにプッシュ通知を送信します。

デバイス 1 が iPad で、デバイス 2 が iPhone で、どちらも同じiCloud アカウントでログインしているとします。両方のデバイスが特定のレコード タイプのレコード更新をサブスクライブしているとします。

私のコードは次のようになります(ハウスキーピングの一部を取り出しました)

あるデバイスがレコードを更新すると、他のデバイスに通知する必要があるように思えます。しかし、それは起こっていることではありません - 通知はありません。WWDC 2014 の Advanced iCloud ビデオでは、1 つのデバイスが通知を既読としてマークしたときに通知されることについて話していますが、私はそれについても成功していません。

同じアカウントにサインインしている別のデバイスがレコードを更新したときに、あるデバイスに通知することに成功した人はいますか?

0 投票する
1 に答える
880 参照

ios - CKQueryNotification を CKRecord または CKSubsription に接続する方法は?

複数のレコード タイプで更新/挿入/削除を受信できるように、CKQueryNotification を CKRecord または CKSubscription に接続する方法が必要です。CKNotifications を正常に受信しています。これがペイロードです。

通知ペイロードによってサブスクリプション ID を取得でき、サブスクリプション ID をレコードの種類を認識しているローカル キャッシュに関連付けることができますが、CKFetchNotificationChangesOperation を使用して未読の通知を取得したいと考えており、その時点では CKQueryNotification オブジェクトしかありません。 .

CKQueryNotification オブジェクトには CKRecordID しかありません。私が知る限り、CKRecordID から CKRecord を取得することはできません。コンテナ内のすべての CKRecord->recordType に対してクエリを実行できましたが、それは正しくないようです。

どんな助けでも大歓迎です!

0 投票する
1 に答える
191 参照

ios - CloudKit と CKSubscriptions

Apple が CKSubscriptions で提供する CloudKit とプッシュ通知に関する非常に奇妙な問題に対処しています。

まず、すべてが正常に機能しています。CKNotification を受け取ることができます。開発スキーマにいくつかの変更を加えるまで、数日間機能しました。新しいフィールドを追加しただけで、他には何も変わっていません。

その瞬間から、CKNotifications を受信できなくなりました。私はコードを変更していないので、間違いはなかったと確信しています。クラウド ダッシュボードからスキーマに新しいフィールドを追加しただけです。

この問題に取り組んでいるのは私だけですか?修正プログラムが存在するかどうか知っていますか?

ありがとう。

更新: CKReference であるフィールド「リスト」の場合、DeleteSelf アクションが設定されている場合、通知は発生しません。アクションが None の場合、通知は発生します。ところで、DeleteSelf が必要です。

0 投票する
1 に答える
137 参照

push-notification - CKMarkNotificationsReadOperation はデバイス固有ですか、それともアプリ固有ですか?

CKNotification を既読としてマークすると、すべてのデバイスに影響するのか、それとも通知を読んだデバイスだけに影響するのか、誰にもわかりますか?

すべてのデバイスに影響する場合、以前のサーバー変更トークンを送信して未処理のものをすべて取得できる場合、それを読み取り済みとしてマークする目的は何ですか?

ご協力いただきありがとうございます!

0 投票する
1 に答える
105 参照

macos - CloudKit OSX のレコード ID から実際のオブジェクトを取得する

CKSubscription を使用して変更をサブスクライブしようとしています。私は非常に一般的で不完全なAppleのドキュメントに従っています。 Apple ドキュメントへのリンク

didReceiveRemoteNotificationメソッドを介して自分のアプリに送信された Record ID を取得するポイントがあり、次のAppDelegateコードを使用して Record Id: を取得しています。

CKNotification を Cloudkit に保存する実際のオブジェクトに変換するにはどうすればよいですか? 別のフェッチを実行する必要がありますか、それともキャストする必要がある CKNotification に含まれるデータですか。