問題タブ [today-extension]

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 に答える
395 参照

ios - 今日の拡張機能が NSNotificationCenter でクラッシュする

スペースを節約するために拡大/縮小する今日の拡張機能を作成しています。通知センターにあるのですが、NSNotificationCenter に問題があります。visibility() 関数を呼び出すと、ビューは正常に縮小して拡大しますが、通知を投稿しようとすると、拡張機能は失敗し、代わりにリロードを試みます (少なくとも 1 回目、2 回目は、拡張機能が「読み込めません」と言うだけです)。 "。 どうしてこれなの?

0 投票する
4 に答える
2688 参照

ios - Today 拡張機能が iOS 8.1.2 で起動する前にクラッシュする

フィードから記事をダウンロードして最新の記事を表示する今日の拡張機能を作成しています。すべてが iOS 8 で問題なく動作し、iOS 8.1 でも引き続き動作し、その後 iOS 8.1.2 が登場し、today 拡張機能が動作しなくなったという苦情が寄せられ始めました。iOS 8.1.2 デバイスでデバッグを試みましたが、拡張機能が起動する前に、次のエラーでクラッシュします。

今日の拡張機能を開発するときに頻繁に発生するバグに関するこの投稿を読みました: http://www.atomicbird.com/blog/ios-app-extension-tip

トム・ハリントンは彼の投稿で次のように述べています。

iOS 8 (およびその他の最近のバージョン) では、Xcode のビルド設定でモジュールを有効にするということは、使用するすべてのフレームワークを明示的にリストする必要がないことを意味します。それらは自動的に検出されます。

しかし、これは、Today 拡張機能が使用する NotificationCenter.framework には当てはまりません。ビルド設定からそれを削除すると、ビルドの警告やエラーは発生しません。しかし、拡張機能をロードしようとすると、libextension.dylib から例外が発生し、拡張機能はロードされません。例外メッセージは啓発的ではありません:

2014-08-16 12:06:53.793 TodayTestExtension[41313:6111763] * キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '* setObjectForKey: オブジェクトは nil にできません (キー: <__NSConcreteUUID 0x7fd729422390> BCD5-F3DBA​​6F34DB5)' 今日の拡張機能を実行している場合は、そのフレームワークをビルド設定のままにしてください。そこにある必要はありませんが、あります。

私の拡張機能にはビルド設定に NotificationCenter.framework が含まれていますが、私の問題は何らかの形で似ているのではないかと思います。

誰もが同様の問題に直面しましたか?それを解決する方法はありますか?

0 投票する
4 に答える
3348 参照

xcode - OS X Today ウィジェット - コンテンツが変更された場合、NCWidgetProviding.widgetPerformUpdateWithCompletionHandler で検出する方法は?

widgetPerformUpdateWithCompletionHandler()Today Extension のコンテンツが変更されたかどうかを通知センターに知らせることができます。例えば:

しかし、コンテンツが変更されたかどうかはどうすればわかりますか? すべてのスナップショットで、ウィジェットはゼロからインスタンス化されます。新しい PID を持つ完全な新しいプロセスです。したがって、インスタンスにプロパティを保存することはできません。現在のウィジェットのコンテンツを以前のスナップショットのコンテンツと比較するにはどうすればよいでしょうか?

Core Data を使用して、後で比較できるように現在のコンテンツを保存しました。これは明らかで機能します。しかし、別の問題が発生します。以前のスナップショットがない場合はどうなりますか? ユーザーが再びウィジェットを追加するためだけにウィジェットを削除したとします。または、ユーザーが再起動しました。今では考えられない以前のスナップショットがない理由は他にもあるかもしれません。いずれにせよ、Core Data にはまだコンテンツが保存されています。この古いコンテンツと現在のコンテンツを比較して変更がないことが検出.NoDataされた場合、通知センターはコンテンツを再描画しないため、ウィジェットは空になります。

completionHandler単に常に を返すのではなく、正しい状態でを呼び出すことがなぜ私にとって非常に重要なのか疑問に思われるかもしれません.NewData。これは、変化がなく、まだ戻っているときに少しちらつきが発生しているためです.NewData。ウィジェットにいくつかの画像があり、ウィジェットを再描画すると、コンテンツ全体がミリ秒間見えなくなります-気付くのに十分な時間です。

足りないものはありますか?Apple がさまざまな状態で応答するオプションを提供する方法を提供しているのに、どの状態に応答する必要があるかを検出することを不可能にしているのは、私には奇妙に思えます。

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

swift - iOS Today 拡張機能は、アプリの Info.plist から URL スキームを読み取ることができますか

アプリ ターゲットがあり、その Info.plist で、URL を使用してアプリを開くために使用できる URL スキームを定義しました。

今、今日の拡張機能を追加しています。拡張機能からその URL を開くテーブル ビューが必要になります。それが API でどのようにサポートされているかがわかります。

アプリの Info.plist から URL スキームを取得できますか、それとも、開くために呼び出す拡張機能の値を基本的に「ハードコーディング」していますか?

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

ios - NSUserDefaultsDidChangeNotification と Today 拡張機能

Today Extensionを使用して iPhone アプリを開発しています。アプリには、から読み込み/に保存する Model モジュールがありますNSUserDefaults。この情報をメイン アプリと拡張機能の両方で利用できるようにするため、アプリ グループを使用します。

アプリと拡張機能の両方が問題なく情報にアクセスできます。

メイン アプリは、ユーザーに提示するローカル通知を作成する場合があります。その通知には 2 つのアクションが関連付けられています ( UIUserNotificationAction)。これらのアクションの 1 つが、メイン アプリのバックグラウンドで実行されるコードをトリガーします。そのコードはNSUserDefaults情報を変更し、同期をトリガーします。私のコードは次のようなものです:

さて、Today Extで。NSUserDefaultsウィジェットのインターフェイスをリロードできるように、情報に加えられた変更を自然に観察します。

さて、ここに私の問題があります:

  1. メイン アプリは UILocalNotification をスケジュールします。今日のビューを開いて、今日のウィジェットを確認します。

  2. 通知が発生すると、画面上部にバナーが表示されます。

  3. そのバナーを下にスライドして 2 つのアクションを表示し、前述の 1 つを選択します (今日のウィジェットはまだライブで画面に表示されています)。

アクションがバックグラウンドで正しく実行されていること、および の情報が変更されていることはわかっていますNSUserDefaults

ただし、today ウィジェットが常にアクティブで画面に表示されていても、リロード アクションはトリガーされません。さらに調査した結果、 が起動されていないことを確認できましNSUserDefaultsDidChangeNotification(ブレークポイントを配置しましたが、トリガーされず、他のチェックも行いました)。

通知アクションによって変更が行われていることがわかります。これは、(今日のビューを閉じてから開くことによって) ウィジェットを強制的にリロードすると、ウィジェットが正しく更新されるためです。

オンラインでさまざまなチュートリアルを見てきましたが、彼らが最初に言うことは、この通知を聞いて、「ウィジェットが同期するNSUserDefaults」ようにウィジェットを更新することです。しかし、問題は、この通知は絶対に役に立たないということです! どうして??


注 1:今日のウィジェットから NSUserDefaults の情報を変更すると、通知が正しく発生します。

注 2: 今日のウィジェットをデバッグするのはまったくひどいことです。ブレークポイントやクラッシュに反応する前に、Xcode に「名前でプロセスにアタッチ...」するように指示する必要があります。また、iOS は常にウィジェット用の新しいプロセスを作成しているため、Xcode に再度アタッチするように常に指示する必要があります。

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

ios - 横向きモードのウィジェットの問題

横向きモードでビューのコンテンツをトリミングするという、ウィジェットに関するこのいらいらする問題があります。コンテンツのサイズを静的に設定しましたが、機能しません。Apple はウィジェットが横向きで特定の高さを持つように制限していますか? Apple のインターフェイス ガイドラインでは推奨されていませんが、実行可能ですか?

編集: ここに画像の説明を入力

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

ios - Today Extensions (iOS 8) からコア データの詳細にアクセスするにはどうすればよいですか?

Today Extension からいくつかのコア データの詳細にアクセスしたいと考えています。

1) Today Extension(iOS8)からコアデータの詳細にアクセスすることはできますか?

2) コアデータの詳細にアクセスするにはどうすればよいですか? アイデアや提案をお願いします。