私の今日の拡張ウィジェットから、運がないメインアプリケーションへのディープリンクを開こうとしています。メインアプリの今日の拡張機能からURLを開く
//ExtensionViewController.swift
public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let url = URL(string: "ACTION_TODAY://")
self.extensionContext?.open(url!, completionHandler: { (completed) in
})
}
//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
}
が、私はの項目のいずれかを選択すると(私はACTION_TODAY://
が必要とされていないと思いますが、一人でACTION_TODAY
は私と同じ結果になります)今日の拡張機能に表示されているコレクションビュー、コンソールは私に__55-[_NCWidgetExtensionContext openURL:completionHandler:]_block_invoke failed: Error Domain=NSOSStatusErrorDomain Code=-50 "(null)"
そして、いくつかの理由から、URLスキームにアンダースコアを含めることは本当に悪い考えだった...それは問題を修正しました削除。ウィジェットはコンテナアプリを正しく開くことができるようになりました。 – nelsballs
偉大な、そしてスペースも許可されていません.. ;-) – Mehul