소스 검색

feat(ios): handle file-sync callback

Andelf 3 년 전
부모
커밋
80016b9ed3
1개의 변경된 파일12개의 추가작업 그리고 1개의 파일을 삭제
  1. 12 1
      src/main/frontend/mobile/core.cljs

+ 12 - 1
src/main/frontend/mobile/core.cljs

@@ -9,6 +9,7 @@
             [clojure.string :as string]
             [frontend.fs.capacitor-fs :as fs]
             [frontend.handler.editor :as editor-handler]
+            [frontend.handler.user :as user-handler]
             [frontend.util :as util]))
 
 (defn- ios-init
@@ -50,6 +51,16 @@
   (when (mobile-util/native-ios?)
     (ios-init)
     (.removeAllListeners mobile-util/file-sync)
+
+    (.addListener App "appUrlOpen"
+                  (fn [^js data]
+                    (when-let [url (.-url data)]
+                      ;; TODO: handler other logseq:// URLs
+                      (when (string/starts-with? url "logseq://auth-callback")
+                        (let [parsed-url (js/URL. url)
+                              code (.get (.-searchParams parsed-url) "code")]
+                          (user-handler/login-callback code))))))
+
     (.addListener mobile-util/file-sync "debug"
                   (fn [event]
                     (js/console.log "🔄" event))))
@@ -70,4 +81,4 @@
                           (editor-handler/save-current-block!))))))
 
     (.addEventListener js/window "sendIntentReceived"
-                       #(intent/handle-received))))
+                       #(intent/handle-received))))