Parcourir la Source

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 il y a 1 semaine
Parent
commit
2666d7cdb2
1 fichiers modifiés avec 12 ajouts et 2 suppressions
  1. 12 2
      meetings_app/ViewController.swift

+ 12 - 2
meetings_app/ViewController.swift

@@ -198,7 +198,7 @@ private extension ViewController {
198
             return
198
             return
199
         }
199
         }
200
 
200
 
201
-        openInAppBrowser(with: url, policy: inAppBrowserDefaultPolicy)
201
+        openInDefaultBrowser(url: url)
202
     }
202
     }
203
 
203
 
204
     @objc private func cancelMeetJoinClicked(_ sender: Any?) {
204
     @objc private func cancelMeetJoinClicked(_ sender: Any?) {
@@ -221,7 +221,7 @@ private extension ViewController {
221
 
221
 
222
     @objc private func browseQuickLinkMeetClicked(_ sender: Any?) {
222
     @objc private func browseQuickLinkMeetClicked(_ sender: Any?) {
223
         guard let url = URL(string: "https://meet.google.com/") else { return }
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
     @objc private func browseQuickLinkMeetHelpClicked(_ sender: Any?) {
227
     @objc private func browseQuickLinkMeetHelpClicked(_ sender: Any?) {
@@ -301,6 +301,16 @@ private extension ViewController {
301
         NSApp.activate(ignoringOtherApps: true)
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
     private func openInSafari(url: URL) {
314
     private func openInSafari(url: URL) {
305
         guard let safariAppURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: "com.apple.Safari") else {
315
         guard let safariAppURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: "com.apple.Safari") else {
306
             NSWorkspace.shared.open(url)
316
             NSWorkspace.shared.open(url)