Вот как я решил мою проблему:
Примечание:
Следующий код не может быть столь же полируется, как ваша. Я все еще начинаю изучать Свифта, поэтому простите меня за «грязный» код.
Вот мой ViewController:
override func viewDidLoad(){
super.viewDidLoad()
//Reference to my AppDelegate
let ad = UIApplication.sharedApplication().delegate as! AppDelegate
ad.regDevTok()
loadAddressURL()
//reload
let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 5 * Int64(NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue()) {
var url = NSURL(string: "http://yourSite/sampleIndex.php?token=\(token)")
var requestObj = NSURLRequest(URL: url!,
cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData,
timeoutInterval: 3.0)
self.webView.loadRequest(requestObj)
}
}
//Setting up GUI of webview
func loadAddressURL() {
var myURL = NSURL(string: "http://www.yourSite.com/sampleIndex.php")
var reqURL = NSURLRequest(URL : myURL!)
webView.loadRequest(reqURL)
NSLog("loadAddressURL")
}
А вот мой AppDelegate:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
//var token was initiated as a global variable
token = deviceToken.hexString()
}
func regDevTok(){
// Device Token
let deviceToken = defaults.objectForKey("DeviceToken") as! String?
if (deviceToken == nil) {
let type: UIUserNotificationType = [UIUserNotificationType.Badge, UIUserNotificationType.Alert, UIUserNotificationType.Sound]
let setting = UIUserNotificationSettings(forTypes: type, categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(setting)
UIApplication.sharedApplication().registerForRemoteNotifications()
}
}
Спасибо сэр @Ted Huinink и сэр @Mahesh за предоставленную мне идеи, чтобы придумать решение.
На самом деле нет делегата или функции, чтобы перехватить это. Единственный способ, по которому я могу это сделать, - либо перезагрузить веб-просмотр с помощью нового NSURL после его изменения с помощью токена устройства, либо сначала получить маркер устройства, а затем загрузить UIWebview. –
@TedHuinink Я создал функцию для webView.loadRequest. Обычно он вызывается внутри функции viewDidLoad. Где я должен это назвать, чтобы я мог сначала вызвать функцию для получения маркера устройства? – Scar
@TedHuinink Прежде всего, извините за вопрос. Я просто новичок в Свифте. Спасибо, что дал мне идею, я это сделал. Я прочитал о времени отправки и использовал его для перезагрузки моей страницы с помощью токена устройства. Спасибо. – Scar