标签: uiwindowscene

iOS 13/Facebook SDK 错误“无法找到有效的 UIWindow”

(为了阻止善意的建议,是的,我上周在 Facebook 的开发者论坛上发布了这个问题。还没有回复。)

TL; 博士

Facebook SDK 5.8 在启动时抱怨FBSDKLog: Unable to find a valid UIWindow

主要故事

在从头开始的单一视图 Xcode 11/iOS 13 项目中,不再有与应用程序关联的默认UIWindow 成员。(窗口本身仍然存在;您可以UIWindowScene使用 Xcode 中的 View Hierarchy Debugger 或 Reveal 应用程序看到它,包含在 a 中。)

FBSDK 5.8 似乎支持 iOS-13,并四处寻找。相关代码在第 498 行

https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.m

Facebook 的代码遍历应用程序的connectedScenes成员,这对我来说是一个空集。如何修改我的代码以便 FBSDK 找到窗口?

一些黑客

我尝试添加以下内容,scene(_:willConnectTo:options:)但似乎为时已晚 — FBSDKLog 消息此时已经出现。(所以我在挣扎……)

guard let s = (scene as? UIWindowScene) else { return }
self.window = UIWindow(windowScene: s)
Run Code Online (Sandbox Code Playgroud)

以下也失败了,但这只是黑暗中的一个镜头:

guard let s …
Run Code Online (Sandbox Code Playgroud)

facebook ios13 uiwindowscene

7
推荐指数
1
解决办法
2111
查看次数

如何使用 AdMob 横幅消除消息“'windows' 在 iOS 15.0 中已弃用:在相关窗口场景上使用 UIWindowScene.windows”?

我想摆脱我的函数中的“‘windows’在 iOS 15.0 中已弃用:在相关窗口场景上使用 UIWindowScene.windows”消息(顺便说一下,我的函数运行得很好。)。

涉及的代码行:

banner.rootViewController = UIApplication.shared.windows.first?.rootViewController
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我的职能:

struct AdView : UIViewRepresentable {
    func makeUIView(context: UIViewRepresentableContext<AdView>) -> GADBannerView {
        let banner = GADBannerView(adSize: kGADAdSizeBanner)
        banner.adUnitID = "ca-app-pub-3940256099942544/2934735716" // test ad
                banner.rootViewController = UIApplication.shared.windows.first?.rootViewController
        banner.load(GADRequest())
        return banner
    }
    
    func updateUIView(_ uiView: GADBannerView, context: UIViewRepresentableContext<AdView>) {}
}
Run Code Online (Sandbox Code Playgroud)

我尝试过,但它不起作用:

banner.rootViewController = UIApplication.shared.connectedScenes.first?.rootViewController
Run Code Online (Sandbox Code Playgroud)

谢谢

admob rootviewcontroller swiftui uiwindowscene

5
推荐指数
1
解决办法
8034
查看次数

如何在 iOS 15 上使用 UIWindowScene.windows?

目前,在 iOS 14.6 中,我可以使用以下代码在我的应用程序中调用一个显示共享表的函数:

func share(link: URL) {
    let activityView = UIActivityViewController(activityItems: [link], applicationActivities: nil)
    UIApplication.shared.windows.first?.rootViewController?.present(activityView, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

自 iOS 15 测试版以来,Xcode 告诉我“'windows' 在 iOS 15.0 中已弃用:在相关的窗口场景中使用 UIWindowScene.windows”。我如何更新它,以便我的共享表可以在这个新版本中正常工作?谢谢!

swift swiftui uiwindowscene ios15

4
推荐指数
2
解决办法
445
查看次数

如何更改 Mac Catalyst 窗口场景中的窗口标题?

我正在 iPad 应用程序的 Mac Catalyst 版本中打开多个场景。问题是所有窗口都只是在每个窗口标题中显示我的应用程序名称。这使得查看“窗口”菜单中的窗口列表变得混乱。另外,我希望特定信息出现在应用程序名称旁边的窗口标题中。

UIWindowScene 有一个很有前途的 Mac Catalyst 属性,名为titleBartype UITitleBar。听起来很有希望,但它与设置任何类型的标题无关。奇怪的。

我在UIWindowSceneUIWindow类或任何与场景相关的东西中找不到任何东西。

我也试过设置title窗口的rootViewController. 那没有效果。我还尝试了representedURL属性的各种值,UITitlebar但这些值用于更改标题以外的其他事情。

有没有办法在 Mac Catalyst 应用程序中设置窗口的标题?

ios mac-catalyst uiwindowscene

1
推荐指数
1
解决办法
692
查看次数