안녕하세요.
푸시알림을 보낼때 링크를 같이 보내어 푸시를 클릭하고 들어오면 해당하는 링크로 웹뷰가 열리게끔 구현하고 있습니다.
//AppDelegate.swift의 didReceive메서드에서 전달받은 링크정보를 USerDefaults에 저장하고
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void){
let pushUrl = response.notification.request.content.userInfo["link"] as? String
if pushUrl != nil {
let userDefault = UserDefaults.standard
userDefault.set(pushUrl, forKey: "PUSH_URL")
userDefault.synchronize()
}else{
}
completionHandler()
}
// ViewController.swift에서 백그라운드에서 포어그라운드로 전환될때 실행되는 이벤트에서 링크 가져와서
//웹뷰로 로드함
NotificationCenter.default.addObserver(forName: UIApplication.willEnterForegroundNotification, object: nil, queue: nil) { (Notification) in
print("포어그라운드로 전환됨")
let userDefault = UserDefaults.standard
let pushUrl = userDefault.string(forKey: "PUSH_URL")
if(pushUrl != nil){
let myUrl = URL(string: pushUrl!)
let myRequest = URLRequest(url: myUrl!)
print(myRequest)
self.webView.load(myRequest)
userDefault.removeObject(forKey: "PUSH_URL")
userDefault.synchronize()
}else{
}
}
위와 같이 구현했고 콘솔에 로그 띄워보니 잘 실행됩니다.
링크도 잘 출력되고 푸시알림 누르고 들얼갔을때도 이벤트도 실행됩니다.
그런데 webview.load()하는 부분만 실행이 제대로 되지 않는것 같습니다.
webview.load()가 실행되는 부분에서 아래와 같은 로그정보가 출력되는것 같습니다.
2021-02-16 13:56:27.367691+0900 pushTest[:] WF: _userSettingsForUser mobile: {
filterBlacklist = (
);
filterWhitelist = (
);
restrictWeb = 1;
useContentFilter = 0;
useContentFilterOverrides = 0;
whitelistEnabled = 0;
}
2021-02-16 13:56:27.367725+0900 pushTest[:] WF: _WebFilterIsActive returning: NO
왜 로드가 정상적으로 되지 않는걸까요?