ila*_*lan 5 apple-push-notifications ios appdelegate swift
我想在用户点击推送通知时打开浏览器.
在我的应用代表中,我有:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
var json = remoteNotif[UIApplicationLaunchOptionsRemoteNotificationKey] as! NSDictionary
storyboard = UIStoryboard(name: "Main", bundle: nil)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let navC = storyboard.instantiateViewControllerWithIdentifier("mainNav") as! NavViewController
let data = json.objectForKey("data") as! NSDictionary
let url = data.objectForKey("url") as! String
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
self.window?.rootViewController = navC
self.window?.makeKeyAndVisible()
}
Run Code Online (Sandbox Code Playgroud)
当用户点击推送通知时,这会给我一个黑屏20秒,然后打开应用程序,然后打开浏览器.如何只在浏览器上打开推送通知,或者至少打开超过20秒?
谢谢.
您无法直接打开另一个应用程序 - 您只能使用快速应用程序切换。20 秒的黑屏听起来很奇怪 - 在多个设备上是否一致?
如果是这样 - 你真的应该运行仪器并看看哪些功能需要这么长时间才能工作。听起来您的应用程序出现之前的加载由于某种原因非常繁重。
如果 Instruments 没有给你任何东西(我很确定它会),你应该看看你再次链接应用程序的内容 - 它是一个巨大的框架列表吗?
作为一个快速技巧,以防加载情节提要是最重要的部分 - 您可以尝试在加载情节提要之前执行 openURL 本身。
确保应用程序委托中的 shouldOpenURL 方法非常高效,并且不执行任何同步网络任务或类似的事情。
| 归档时间: |
|
| 查看次数: |
1623 次 |
| 最近记录: |