我尝试从我今天的扩展程序小部件打开一个深层链接到我的主应用程序,但没有运气。
//ExtensionViewController.swift
public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let url = URL(string: "ACTION_TODAY://")
self.extensionContext?.open(url!, completionHandler: { (completed) in
})
}
主应用的Info.plist :(我猜不需要ACTION_TODAY://
,但ACTION_TODAY
单独给我相同的结果)
//AppDelegate.swift
func application(_ application: UIApplication, open url: URL,
sourceApplication: String?, annotation: Any) -> Bool {
let action_today = "ACTION_TODAY://"
if url.absoluteString.contains(action_today) {
return true
}
return false
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let action_today = "ACTION_TODAY://"
if url.absoluteString.contains(action_today) {
return true
}
return false
}
当我选择今天扩展中显示的collectionView项之一时,控制台会给我一个__55-[_NCWidgetExtensionContext openURL:completionHandler:]_block_invoke failed: Error Domain=NSOSStatusErrorDomain Code=-50 "(null)"
答案 0 :(得分:4)
在今天的视图控制器中,将以下代码放在需要从扩展程序中打开主iOS应用程序的位置。
let appURL = NSURL(string: "StarterApplication://")
self.extensionContext?.open(appURL! as URL, completionHandler:nil)