Swiftui共享扩展名不显示iOS 16
我正在尝试在选择我与应用程序捆绑的share Extension时呈现我的Swiftui视图。这先前在iOS 15中起作用,但我想知道是否有人能够阐明如何在iOS 16中修复它(授予,这可能是一个beta错误)。
我的共享扩展名是这样的:
// ShareNavigationController.swift
import Foundation
import UIKit
import SwiftUI
import Social
@objc(ShareNavigationController)
class ShareNavigationController: UINavigationController {
override func viewWillAppear(_ animated: Bool) {
setNavigationBarHidden(true, animated: false)
}
override func viewDidLoad() {
setNavigationBarHidden(true, animated: false)
initSwiftUI()
}
private func initSwiftUI() {
// This is my SwiftUI View
let rootView = AddURLView(viewModel: AddURLViewModel(extensionContext: self.extensionContext))
let controller = UIHostingController(rootView: rootView)
view.addSubview(controller.view)
controller.view.translatesAutoresizingMaskIntoConstraints = false
controller.view.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
controller.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
controller.view.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
controller.view.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
}
}
属性列表看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSExtension</key>
<dict>
<key>NSExtensionPrincipalClass</key>
<string>ShareNavigationController</string>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY(extensionItems, $extensionItem, SUBQUERY($extensionItem.attachments, $attachment, SUBQUERY($attachment.registeredTypeIdentifiers, $uti, $uti UTI-CONFORMS-TO "public.url" AND NOT $uti UTI-CONFORMS-TO "public.file-url").@count >= 1).@count >= 1).@count >= 1
</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
</dict>
</dict>
</plist>
运行iOS 16的设备无法显示此代码的视图。在WWDC中如何处理共享扩展程序,我是否会错过一些问题,或者这是我应该提交错误的?
I'm trying to get my SwiftUI views to render when selecting the share extension I bundle with my app. This worked previously in iOS 15, but I'm wondering if anyone would be able to shed some light on how to fix it in iOS 16 (Granted, this might be a beta bug).
My share extension is outlined like this:
// ShareNavigationController.swift
import Foundation
import UIKit
import SwiftUI
import Social
@objc(ShareNavigationController)
class ShareNavigationController: UINavigationController {
override func viewWillAppear(_ animated: Bool) {
setNavigationBarHidden(true, animated: false)
}
override func viewDidLoad() {
setNavigationBarHidden(true, animated: false)
initSwiftUI()
}
private func initSwiftUI() {
// This is my SwiftUI View
let rootView = AddURLView(viewModel: AddURLViewModel(extensionContext: self.extensionContext))
let controller = UIHostingController(rootView: rootView)
view.addSubview(controller.view)
controller.view.translatesAutoresizingMaskIntoConstraints = false
controller.view.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
controller.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
controller.view.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
controller.view.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
}
}
And the property list looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSExtension</key>
<dict>
<key>NSExtensionPrincipalClass</key>
<string>ShareNavigationController</string>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY(extensionItems, $extensionItem, SUBQUERY($extensionItem.attachments, $attachment, SUBQUERY($attachment.registeredTypeIdentifiers, $uti, $uti UTI-CONFORMS-TO "public.url" AND NOT $uti UTI-CONFORMS-TO "public.file-url").@count >= 1).@count >= 1).@count >= 1
</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
</dict>
</dict>
</plist>
Devices running iOS 16 aren't able to show a view with this code. Is there something I've missed in how share extensions are handled in WWDC or is this something I should file a bug for?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论