iOS Swift 일정시간 지연후 실행, 타이머
하이브리드앱에서 푸시메시지가 왔을때 터치하면 해당 앱이 실행이 된다.
만약 푸시메시지에 링크가 걸려있으면, 해당 링크로 이동하도록 코딩이 되어 있지만
앱이 완전히 종료되어 있는 상태에서는 동작하지 않고, 백그라운드에 있는 상태에서는 동작이 되었다.
확인해보니, 푸시메시지를 터치할때 해당앱이 실행이 완전히 된후, 링크 이동 명령을 해야지만 정상적으로 동작이 된다.
따라서, 링크 이동 명령에 약간의 시간 지연, 즉 타이머를 주면 정상적으로 동작한다.
AppDelegate.swift
//MARK: Foreground에서 푸쉬와서 클릭할 때
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
print(userInfo)
let link = userInfo[myLink]
link_org = userInfo[myLink] as! String
print("url link: \(String:link)")
// 2초후 timerAction() 함수 실행
mTimer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(timerAction), userInfo: nil, repeats: false)
completionHandler()
}
@objc func timerAction(timer: Timer){
if let viewController = self.window?.rootViewController as? ViewController {
viewController.pushLoad(pushurl: link_org)
}
ViewController.swift
var mainWebView = WKWebView()
func pushLoad(pushurl : String){
guard let linkUrl = URL(string: pushurl) else { return }
print("ViewController linkUrl: \(String(describing: linkUrl))")
mainWebView.load(linkUrl)
}
'iOS' 카테고리의 다른 글
iOS Swift WKWebView 자동로그인, 쿠키저장 (0) | 2019.06.24 |
---|---|
모바일웹에서 앱 호출하기 (0) | 2019.06.19 |
아이폰 아이콘에 뱃지 숫자 설정 (0) | 2019.06.07 |
iOS Swift Controller 실행 (Storyboard 실행) (0) | 2019.06.03 |
iOS Swift 런치스크린 시간 고정(강제 지연) (0) | 2019.06.03 |