よく知られているユーザーをどのようにプロンプトすることができるのでしょうか?'app'はユーザーがプッシュ通知を送ろうとしますユーザーは(ユーザーでなくても)デフォルトで私のアプリを開きます。Swift FIRMessagingはサインアップ時にプッシュ通知のリクエストを送信します
どうすればよいですか? appDelegate.swiftでプッシュ通知の設定のみを構成すると思いましたか?前もって感謝します!
よく知られているユーザーをどのようにプロンプトすることができるのでしょうか?'app'はユーザーがプッシュ通知を送ろうとしますユーザーは(ユーザーでなくても)デフォルトで私のアプリを開きます。Swift FIRMessagingはサインアップ時にプッシュ通知のリクエストを送信します
どうすればよいですか? appDelegate.swiftでプッシュ通知の設定のみを構成すると思いましたか?前もって感謝します!
あなたは、あなたのアプリがログインページを持っている現実的ならば、確かにログインした後、あなたがそれを行う必要があるところ、どこにでもしたいプッシュ通知のための許可を求めることができます。
最初に、アクセス許可を求めるコードを関数AppDelegate.swift
に配置する必要があります。
func registerUserNotification() {
if #available(iOS 10.0, *) {
let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: { (bool, error) in
UNUserNotificationCenter.current().delegate = self
if (error == nil) {
// its required for iOS 11 to avoid getting warning about "UI API called on a background thread"
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
})
} else {
if UIApplication.shared.responds(to: #selector(UIApplication.registerUserNotificationSettings(_:))) {
let types:UIUserNotificationType = ([.alert, .badge, .sound])
let settings:UIUserNotificationSettings = UIUserNotificationSettings(types: types, categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
UIApplication.shared.registerForRemoteNotifications()
}
}
}
注:また、アプリのデリゲートを参照し、その関数を呼び出す必要が任意のビューコントローラでiOSの10
の最新のSDKを使用できるようにimport UserNotifications
することを忘れないでください:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.registerUserNotification()
アップデート1:
あなたのw病気の必要性(})クラスのスコープ外AppDelegateの最後に次のコードを配置し、以下のようUNUserNotificationCenterのデリゲートを実装するために、これはiOSの10のために必要とされています
@available(iOS 10, *)
extension AppDelegate : UNUserNotificationCenterDelegate {
// Receive displayed notifications for iOS 10 devices.
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("Userinfo \(notification.request.content.userInfo)")
}
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) {
print("Userinfo \(response.notification.request.content.userInfo)")
}
}
Firebaseによって概説されているすべてのリモート通知設定を実行できますが、「アプリはプッシュ通知を送信します」というメッセージを表示する手順はスキップできます。その後、ユーザーが登録プロセスを完了したら、iOSからプッシュ通知の承認をリクエストします。
次のコードは、システムプロンプトをユーザーに表示する重要な部分を示しています。いつでも呼び出すことができます。これらは、アプリケーションの起動時に省略しなければならないコード行でもあります。
func turnOnNotifications() {
if #available(iOS 10.0, *) {
UNUserNotificationCenter
.currentNotificationCenter()
.requestAuthorizationWithOptions([.Alert, .Badge, .Sound]) { authorized, error in
}
} else {
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: .None)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
}
}
私はそこにいる!私はあなたのコードをチェックアウトし、それは非難/間違ったコードがたくさんあるようです。あなた自身でこれを試しましたか?私に助けてくれてありがとう、ありがとう、ありがとう! – askaale
@askaaleあなたはどんなスピーディーを使っていますか?これは迅速な3です!廃止予定のものはありません! – AaoIi
私はSwift 3も使用しています。奇妙な..いくつかのエラーは: "宣言されていないタイプのUNAuthorizationOptionsの使用"、 "未解決の識別子" UNUserNotificationCenter "の使用、"メンバーアプリケーションへの曖昧な参照 "などです。奇妙な.. – askaale