ios - 如何在 ViewController 启动之前等待 AppDelegate 完成?
问题描述
仅在我的应用程序首次启动后出现问题。
我确定这是因为我的 ViewController 加载速度比 AppDelegate 快,然后 OneSignal userId 变量尚未设置,因此我的 webview 链接加载时没有 userId 值并且不显示它应该显示的动态内容......
在我的 AppDelegate.swift 中,我有一些常规的 OneSignal 设置,在最后一行 76 :
let userId = OneSignal.getPermissionSubscriptionState().subscriptionStatus.userId
该行将从智能手机收集唯一的 userId。
在我的 ViewController.swift 我有这个:
@IBOutlet var webview: WKWebView!
let defaults = UserDefaults.standard
private var monNom: String = ""
let playerId64 = (toBase64(word: userId ?? ""))
@IBOutlet weak var compteApplication: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
webview.load(URLRequest(url: URL(string: "https://www.example.com/index.php?application::::::::::::::\(playerId64)")!))
}
我是 Swift 新手,希望您能教我如何解决这个问题。
解决方案
您可以从中删除Main.storyboard
引用info.plist
。有两个地方可以删除,当你展开所有值时你会看到它们。现在您可以通过设置ViewController
.AppDelegate
SceneDelegate
rootViewController
window
推荐阅读
- typescript - 如果 keyof 则推断函数签名
- javascript - 如何修复拖放测验?
- mqtt - 如何在没有应用名称的情况下将直接命令从 Google Home 发送到自定义智能设备?
- python - 从 SQL Server 导入的字符串解析 XML
- r - 无法启动 h2o
- sql-server-2008 - 存储过程输出而不是行数如何计算?
- android - 以编程方式从 Espresso 发出长按返回键
- sockets - 写入套接字时,什么会导致 POSIX 'write' 命令'fall-behind'?
- kubernetes - 要求 k8s pod 在特定节点上运行之前具有特定标签
- javascript - 为什么选择 Next.js API?