Преглед изворни кода

Open Google Meet links in default browser instead of in-app WebKit

Meet blocks embedded WKWebView; use NSWorkspace.open for Join and the Browse Google Meet quick link, with error handling via openInDefaultBrowser(url:).

Made-with: Cursor
huzaifahayat12 пре 1 недеља
родитељ
комит
2666d7cdb2
1 измењених фајлова са 12 додато и 2 уклоњено
  1. 12 2
      meetings_app/ViewController.swift

+ 12 - 2
meetings_app/ViewController.swift

@@ -198,7 +198,7 @@ private extension ViewController {
198 198
             return
199 199
         }
200 200
 
201
-        openInAppBrowser(with: url, policy: inAppBrowserDefaultPolicy)
201
+        openInDefaultBrowser(url: url)
202 202
     }
203 203
 
204 204
     @objc private func cancelMeetJoinClicked(_ sender: Any?) {
@@ -221,7 +221,7 @@ private extension ViewController {
221 221
 
222 222
     @objc private func browseQuickLinkMeetClicked(_ sender: Any?) {
223 223
         guard let url = URL(string: "https://meet.google.com/") else { return }
224
-        openInAppBrowser(with: url, policy: inAppBrowserDefaultPolicy)
224
+        openInDefaultBrowser(url: url)
225 225
     }
226 226
 
227 227
     @objc private func browseQuickLinkMeetHelpClicked(_ sender: Any?) {
@@ -301,6 +301,16 @@ private extension ViewController {
301 301
         NSApp.activate(ignoringOtherApps: true)
302 302
     }
303 303
 
304
+    private func openInDefaultBrowser(url: URL) {
305
+        NSWorkspace.shared.open(url, configuration: NSWorkspace.OpenConfiguration()) { [weak self] _, error in
306
+            if let error {
307
+                DispatchQueue.main.async {
308
+                    self?.showSimpleAlert(title: "Unable to open browser", message: error.localizedDescription)
309
+                }
310
+            }
311
+        }
312
+    }
313
+
304 314
     private func openInSafari(url: URL) {
305 315
         guard let safariAppURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: "com.apple.Safari") else {
306 316
             NSWorkspace.shared.open(url)