URL 시나리오를 통해 마이그레이션한 후 응용 프로그램으로 돌아갈 때의 처리

3681 단어 SwiftFirebaseiOS
URL 스키마를 사용하여 다른 응용 프로그램으로 이동한 후 응용 프로그램으로 돌아갈 때 처리하는 단계 설명
이번에는 응용 프로그램에서 PUSH로 화면을 설정하고 URL 스키마를 사용하여 설정합니다.앱에서 이 앱의 PUSH 설정 화면으로 이동하면 설정이 완료된 시간에 사용자가'Back to XXX(응용 이름)'로 되돌아오는 것을 감지하고 응용 측면에서 필요한 처리를 할 때의 절차, 설정입니다.나는 앱 이외의 다른 응용 프로그램으로 옮길 때도 같은 순서로 진행할 수 있다고 생각한다.
환경 확인
* iOS:8.0〜
* Swift:2.2

1. URL 시나리오를 사용한 화면 마이그레이션 (이번에는 설정 화면으로 마이그레이션)



응용 프로그램의 스위치를 누르는 시간 설정입니다.앱 내의 설정 화면으로 이동합니다.
실제로 스위치가 머리를 뽑는 사건의 처리 부분은 Eureka를 사용하여 설치했기 때문에 세부 사항을 생략했다.
let url = NSURL(string:UIApplicationOpenSettingsURLString)!
UIApplication.sharedApplication().openURL(url)

↓ PUSH 알림 허용

설정이 완료되었을 때 응용 프로그램 측에서 사용자가 "Back XXX"로 되돌아오는 상황을 감지하고 처리하기를 원합니다.

2. 어플리케이션 측면에서 "Back to XXX" 가 반환되는 상황을 감지하고 처리


"Back to XXX"를 눌러 애플리케이션으로 돌아갈 때 설정합니다.앱의 설정 내용도 응용 프로그램에 반영된다.
Settings.응용 프로그램 측면에서 앱의 PUSH 설정 내용을 확인하는 코드가 이런 느낌이다.
func isPushNotificationEnable() -> Bool {
    if UIApplication.sharedApplication().respondsToSelector(#selector(UIApplication.currentUserNotificationSettings)) == true {
        let settings = UIApplication.sharedApplication().currentUserNotificationSettings()
        if (settings?.types.contains(.Alert) == true){
            return true
        }
        else {
            return false
        }
    }
    return false
}
처음에 호출자의 화면view Will Appear가 불렸나요?뷰윌 앱이 불려가지 않아서 다른 수단으로 검사해야 한다고 생각했어요.

3.applicationWillEnterForeground 검사


결론적으로 Setting.앱에서 원래 앱으로 돌아갈 때 응용 프로그램 윌 엔터 포그라운드를 호출하여 이것을 검사하고 처리하면 됩니다.
호출된 응용 프로그램을 통해 애플리케이션WillEnterForegrond를 감지하기 위해 NSNotificationCenter에 등록합니다.
※ NotificationSettingsViewController 섹션은 직접 만든 View로 읽어보십시오.
override func viewDidLoad() {
    ...
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(NotificationSettingsViewController.applicationWillEnterForeground), name: UIApplicationWillEnterForegroundNotification, object: nil)
}
감지된 기능
func applicationWillEnterForeground() {
    // isPushNotificationEnable()を呼び出してSettings.appでの設定内容をアプリ側に反映する
}
이후viewDisappear 시기에 NSNotificationCenter 모니터링을 잠시 중지합니다.
override func viewDidDisappear(animated: Bool) {
    NSNotificationCenter.defaultCenter().removeObserver(self)
}
이런 느낌, 설정.응용 프로그램에서 사용자가'Back to XXX'를 통해 되돌아오는 것을 감지하면 응용 프로그램 측면에서 필요한 처리를 할 수 있습니다.

4. 뱀발


자체 설치된 응용 프로그램에서 PUSH 알림을 허용하는 경우 PUSH 알림의 조건 목록이 표시됩니다.

PUSH 알림은 Firebase를 사용하기 때문에 각 키워드의 Switch의 ON/OFF에 맞추어 FIRMessaging.messaging().subscribeToTopic(topic: String) 또는 FIRMessaging.messaging().unsubscribeFromTopic(topic: String) 느낌을 호출합니다.subscribeToTopic()unsubscribeFromTopic()를 연속으로 두드리면 오류가 발생하기 때문에 이 부근의 상세한 상황은 또 다른 기회가 있을 수 있다.

좋은 웹페이지 즐겨찾기