gpt4 book ai didi

ios - 从 URL 方案打开完全退出的应用程序未从 iOS 中的 postNotificationName 调用该函数

转载 作者:行者123 更新时间:2023-11-30 13:53:30 25 4
gpt4 key购买 nike

这里我设置了URL方案的代码:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
if let userUrl = String(url) as String? {
print("\(userUrl)")
if (userUrl == "count://fromClipBoard") {
NSNotificationCenter.defaultCenter().postNotificationName("com.getContentFromClipBoard", object: self)
}
}
return false
}

并将以下代码添加到我的ViewController中:

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)

NSNotificationCenter.defaultCenter().addObserver(self, selector: "setContentFromClipBoard", name: "com.getContentFromClipBoard", object: nil)

//............
}

func setContentFromClipBoard() {
tv.text = "WAHAHA"

if let clipBoard = UIPasteboard.generalPasteboard().string {
tv.text = clipBoard
}
}

当我的应用程序未完全退出时,com.getContentFromClipBoard叫得好,tv.text成为clipBoard .

但是,当我完全退出应用程序然后使用此 URL 方案时,com.getContentFromClipBoard没有被调用并且 tv.text保持为空。

那么我该如何解决这个问题呢?谢谢!

最佳答案

通过在 didFinishLaunchingWithOptions 内检查 UIApplicationLaunchOptionsURLKey 来修复。

(延迟是等待 View 加载)

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if let userUrl = launchOptions?[UIApplicationLaunchOptionsURLKey] as? NSURL {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), {
if (userUrl.absoluteString == "count://fromClipBoard") {
NSNotificationCenter.defaultCenter().postNotificationName("com.getContentFromClipBoard", object: self)
}
})
}
}

关于ios - 从 URL 方案打开完全退出的应用程序未从 iOS 中的 postNotificationName 调用该函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33956770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com