2011-11-07 10 views
15

enter image description here「プッシュ通知を送信しますか?」アラートビューを再表示する方法を教えてください。

リモート通知の登録後、上記の画像のような警告表示を表示することができました。 しかし、私は自分のプロジェクトアプリケーションを削除してもう一度ビルドすると、もう表示されません。

アラートビューを同じデバイスに再度表示する可能性はありますか?

NSUserDefaultsにデバイストークンを一時的に保存できなかったため、私の好きなのはデバイストークンを再度取得することです。打ち上げで

答えて

7

、あなたのアプリが経由してトークンを要求する必要があります。

- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types 

とデリゲートメッセージにiOSのからトークンを取得します:

– application:didRegisterForRemoteNotificationsWithDeviceToken: 

iOSの通知を許可するようにユーザーを促します必要なときにのみ。アプリに対してリモート通知が既に許可されている場合、アラートは表示されず、アプリは有効なトークンを取得します。

ネットは強制的に警告することはできませんが、そうする必要はありません。

+0

私のアプリケーションは、常にこのメソッド内で取得します - アプリケーション:didRegisterForRemoteNotificationsWithDeviceToken:起動時には?明日の仕事で確認します – bluezald

+3

あなたはいつも 'application:didRegisterForRemoteNotificationsWithDeviceToken:'または 'application:didFailToRegisterForRemoteNotificationsWithError:' – XJones

+0

のいずれかを取得します。このエラーはありますが、有効な 'aps-environment 、とにかく答えのためのとにかくありがとう:D – bluezald

3

はい。

http://developer.apple.com/library/ios/#technotes/tn2265/_index.html

アプリの初回の実行をシミュレートしたい場合は、その日のためにアンインストールアプリを残すことができます。実際に1日待たなくても、システムクロックを1日以上前に設定して、デバイスを完全にオフにしてからデバイスをオンに戻すことで、後者を達成できます。

+0

これはもう動作しないようです... – jwhat

+0

これは明らかに壊れており、Appleにバグレポートが公開されています。 – perezda

+1

AppleはこれがiOS <5(つまり<= 4. *)でしか動作しないと言います。クロック設定のトリックはiOS <5で動作するか、一日のアンインストールはiOS <5で動作することを意味するかどうかは不明です。 – rjmunro

11

テストのために、必要に応じて、再びダイアログプッシュ通知の権限を提示する質問への対応 - これは確かに回避策ですが、ここに行く:

は広範囲にプッシュ通知を使用してアプリ上だけで完成した作品を持って、そして持ちます私は最終的に、その問題を回避する最も合理的な方法は、デバイスをテスト専用に使用することでした(つまり、ローエンドのiPod Touch)。

ダイアログをリセットするには、設定>一般>リセット>すべてのコンテンツと設定を消去します。デバイスのセットアッププロセスを実行し、アプリを再インストールして、Goを実行します。

これは、開発/テストの過程で必要に応じて、「最初の起動」体験をテストするために見つけた唯一の方法でした。また、このプロセスには多彩な機能が追加されました。

このすべてに頼る必要はありませんでしたが、私は本当に神になることが判明したので、私はとてもうれしく思います。 FWIW。

[P.S. OSなどのベータ版のテストにも役立つでしょう。]

+2

より良い方法 - https://developer.apple.com/library/ios/technotes/tn2265/_index.htmlテクニカルノート(iOSでのプッシュ通知権限警告のリセット)の一番下までスクロールして指示をご覧くださいデバイスをリセットせずにプッシュ通知パーミッションをリセットします。これは、専用のデバイスを使用できず、毎回パーソナルデバイスをリセットしたくない場合に便利です。 – Sid

+1

これは、@ Sidのコメントと組み合わせて正解です。私はsidによって参照されるリンクでプロセスを辿り、警告の表示を繰り返すことができました。すべてのコンテンツと設定を消去する方が現実的ですが、すべての人がiDeviceをテスト用にのみ利用できるわけではありません。 – Chris

22
  1. あなたのアプリをデバイスから削除してください。

  2. デバイスを完全にオフにして、再びオンにします。

  3. [設定]> [一般]> [日付] &に移動し、日付を1日先に設定します。 以上です。

  4. もう一度デバイスをオフにして、再びオンにします。

参照:https://developer.apple.com/library/ios/technotes/tn2265/_index.html

3

は一時的にあなたのパッケージIDを変更します。

com.mycompany.app - > com.mycompany.app1

+0

これは、あなたのアプリを何度も何度もテストして、デバイスをオンにして別の日付を設定するより簡単な方法だとわかりました。 – fahrulazmi

関連する問題