openURL 回调?

Posted

技术标签:

【中文标题】openURL 回调?【英文标题】:openURL Callback? 【发布时间】:2016-02-22 05:35:37 【问题描述】:

用户拒绝位置,我将用户发送到设置应用程序上的位置设置:

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=LOCATION_SERVICES")!)

用户从“设置”应用授权位置,返回到我的应用,左上角有Back to App

我怎么知道他回到了应用程序? viewDidAppear 不起作用

【问题讨论】:

发生了什么?... 你找到解决办法了吗?,你可以回答这个问题 【参考方案1】:

您可以通过检查AppDelegate's 方法轻松检测:-

func applicationWillEnterForeground(application: UIApplication!) 

或者通过NSNotificationCenter:-

在视图控制器的 viewDidLoad() 中注册通知
NSNotificationCenter.defaultCenter().addObserver(self, selector: "applicationWillEnterForeground", name: UIApplicationWillEnterForegroundNotification, object: nil)


//calling selector method
 func applicationWillEnterForeground() 
            println("did enter foreground")
        

【讨论】:

【参考方案2】:

试试UIApplicationDelegate applicationDidBecomeActive

【讨论】:

【参考方案3】:

在你的 viewController 中使用 NSNotificationCenter

在 viewDidLoad 上调用它

- (void)registerAppEnterForeground

    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(applicationWillEnterForeground)
     name:UIApplicationWillEnterForegroundNotification
     object:nil];



-(void)applicationWillEnterForeground

 /*HANDLE YOUR CODE HERE*/

【讨论】:

以上是关于openURL 回调?的主要内容,如果未能解决你的问题,请参考以下文章

openURL:在 iOS 10 中已弃用

iOS AppDelegate.m:处理 openUrl RCTLinkingManager 和 Twitter - 方法 'application:openURL:options:' 的重复声明

iOS学习笔记3-openURL

openurl 跳转

'openURL'在iOS 10.0中已被弃用:请使用openURL:options:completionHandler:而不是在Swift 3中[重复]

iOS:openURL 可以为零吗?