on develop help sign in
Fix iOS baseUrl

This change only affects iOS which was failing to find assets relative to the main bundle resource path which is the expected location for the it to be placed. TODO: upstream this to jsaddle-wkwebview

commit799696b9f673ba518757a32c27fa7e4c488b53f8 authorLuigy Leon <luichi.19@gmail.com> dateFri 5 Oct 2018, 09:13 (8 years ago) parente28f91b
1 file changed+19
reflex-dom/src/Reflex/Dom/Internal.hs+19
reflex-dom/src/Reflex/Dom/Internal.hs+19
@@ -1,4 +1,5 @@
11{-# LANGUAGE CPP #-}
2+{-# LANGUAGE LambdaCase #-}
23{-# LANGUAGE OverloadedStrings #-}
34{-# LANGUAGE RankNTypes #-}
45{-# LANGUAGE TypeFamilies #-}
@@ -32,7 +33,25 @@ run jsm = do
3233 putStrLn $ "Running jsaddle-warp server on port " <> show port
3334 JW.run port jsm
3435#elif defined(MIN_VERSION_jsaddle_wkwebview)
36+#if defined(ios_HOST_OS)
37+import Data.Default
38+import Language.Javascript.JSaddle (JSM)
39+import Language.Javascript.JSaddle.WKWebView (run', mainBundleResourcePath)
40+import Language.Javascript.JSaddle.WKWebView.Internal (jsaddleMainHTMLWithBaseURL)
41+
42+-- TODO: upstream to jsaddle-wkwebview
43+run :: JSM () -> IO ()
44+run jsm = do
45+ let indexHtml = "<!DOCTYPE html><html><head></head><body></body></html>"
46+ baseUrl <- mainBundleResourcePath >>= \case
47+ Nothing -> do
48+ putStrLn "Reflex.Dom.run: unable to find main bundle resource path. Assets may not load properly."
49+ return ""
50+ Just p -> return $ "file://" <> p <> "/index.html"
51+ run' def $ jsaddleMainHTMLWithBaseURL indexHtml baseUrl jsm
52+#else
3553import Language.Javascript.JSaddle.WKWebView (run)
54+#endif
3655#elif defined(ANDROID)
3756import Android.HaskellActivity
3857import Control.Monad