Browse 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 3 months ago
parent
commit
2666d7cdb2
1 changed files with 12 additions and 2 deletions
  1. 12 2
      meetings_app/ViewController.swift

+ 12 - 2
meetings_app/ViewController.swift

@@ -198,7 +198,7 @@ private extension ViewController {
             return
         }
 
-        openInAppBrowser(with: url, policy: inAppBrowserDefaultPolicy)
+        openInDefaultBrowser(url: url)
     }
 
     @objc private func cancelMeetJoinClicked(_ sender: Any?) {
@@ -221,7 +221,7 @@ private extension ViewController {
 
     @objc private func browseQuickLinkMeetClicked(_ sender: Any?) {
         guard let url = URL(string: "https://meet.google.com/") else { return }
-        openInAppBrowser(with: url, policy: inAppBrowserDefaultPolicy)
+        openInDefaultBrowser(url: url)
     }
 
     @objc private func browseQuickLinkMeetHelpClicked(_ sender: Any?) {
@@ -301,6 +301,16 @@ private extension ViewController {
         NSApp.activate(ignoringOtherApps: true)
     }
 
+    private func openInDefaultBrowser(url: URL) {
+        NSWorkspace.shared.open(url, configuration: NSWorkspace.OpenConfiguration()) { [weak self] _, error in
+            if let error {
+                DispatchQueue.main.async {
+                    self?.showSimpleAlert(title: "Unable to open browser", message: error.localizedDescription)
+                }
+            }
+        }
+    }
+
     private func openInSafari(url: URL) {
         guard let safariAppURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: "com.apple.Safari") else {
             NSWorkspace.shared.open(url)