我試圖打開從我今天的擴展小部件到我的主要應用程序沒有運氣的深層鏈接。從今天的分機打開網址
//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)"
而由於種種原因,這是一個非常糟糕的主意,包括在URL方案下劃線刪除...它已經解決了該問題。該小部件現在可以正確打開容器應用程序。 – nelsballs
太棒了,空間也不允許那裏.. ;-) – Mehul