@@ -9,7 +9,6 @@ module Language.Javascript.JSaddle.WKWebView
9 , runHTMLWithBaseURL
9 , runHTMLWithBaseURL
11 , mainBundleResourcePath
11 , mainBundleResourcePath
12− , ApplicationState (..)
13 , AppDelegateConfig (..)
12 , AppDelegateConfig (..)
14 , AppDelegateNotificationConfig (..)
13 , AppDelegateNotificationConfig (..)
15 , AuthorizationOption (..)
14 , AuthorizationOption (..)
@@ -25,7 +24,7 @@ import Language.Javascript.JSaddle.WKWebView.Internal
25 (jsaddleMain, jsaddleMainHTMLWithBaseURL, jsaddleMainFile, WKWebView(..), mainBundleResourcePath)
24 (jsaddleMain, jsaddleMainHTMLWithBaseURL, jsaddleMainFile, WKWebView(..), mainBundleResourcePath)
26import System.Environment (getProgName)
25import System.Environment (getProgName)
27import Foreign.C.String (CString, withCString)
26import Foreign.C.String (CString, withCString)
28−import Foreign.C.Types (CBool, CInt)
27+import Foreign.C.Types (CBool)
29import Foreign.StablePtr (StablePtr, newStablePtr)
28import Foreign.StablePtr (StablePtr, newStablePtr)
30import Language.Javascript.JSaddle (JSM)
29import Language.Javascript.JSaddle (JSM)
@@ -41,7 +40,6 @@ foreign import ccall runInWKWebView
41 -> StablePtr (IO ()) -- applicationWillTerminate
40 -> StablePtr (IO ()) -- applicationWillTerminate
42 -> StablePtr (IO ()) -- applicationSignificantTimeChange
41 -> StablePtr (IO ()) -- applicationSignificantTimeChange
43 -> StablePtr (CString -> IO ()) -- applicationUniversalLink
42 -> StablePtr (CString -> IO ()) -- applicationUniversalLink
44− -> StablePtr (CInt -> CString -> IO ()) -- applicationDidReceiveRemoteNotification
45 -> Word64 -- whether to run requestAuthorizationWithOptions
43 -> Word64 -- whether to run requestAuthorizationWithOptions
46 -> Word64 -- Ask for Badge authorization
44 -> Word64 -- Ask for Badge authorization
47 -> Word64 -- Ask for Sound authorization
45 -> Word64 -- Ask for Sound authorization
@@ -68,11 +66,6 @@ data AppDelegateConfig = AppDelegateConfig
69 -- The Core Foundation plist key CFBundleURLTypes controls which URL schemes
67 -- The Core Foundation plist key CFBundleURLTypes controls which URL schemes
70 -- the app should respond to.
68 -- the app should respond to.
71− , _appDelegateConfig_applicationDidReceiveRemoteNotification :: ApplicationState -> CString -> IO ()
72− -- ^ Called when the application receives a remote notification.
73− -- 'ApplicationState' is the current state of the app.
74− -- The 'CString' JSON-encoded user info contained in the notification.
75− -- For more information see https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623117-application?language=objc
76 , _appDelegateConfig_appDelegateNotificationConfig :: AppDelegateNotificationConfig
69 , _appDelegateConfig_appDelegateNotificationConfig :: AppDelegateNotificationConfig
77 , _appDelegateConfig_developerExtrasEnabled :: Bool
70 , _appDelegateConfig_developerExtrasEnabled :: Bool
78 -- ^ Allow devtools in the app. Defaults to 'True'
71 -- ^ Allow devtools in the app. Defaults to 'True'
@@ -96,7 +89,6 @@ instance Default AppDelegateConfig where
96 , _appDelegateConfig_applicationWillTerminate = return ()
89 , _appDelegateConfig_applicationWillTerminate = return ()
97 , _appDelegateConfig_applicationSignificantTimeChange = return ()
90 , _appDelegateConfig_applicationSignificantTimeChange = return ()
98 , _appDelegateConfig_applicationUniversalLink = \_ -> return ()
91 , _appDelegateConfig_applicationUniversalLink = \_ -> return ()
99− , _appDelegateConfig_applicationDidReceiveRemoteNotification = \_ _ -> return ()
100 , _appDelegateConfig_appDelegateNotificationConfig = def
92 , _appDelegateConfig_appDelegateNotificationConfig = def
101 , _appDelegateConfig_developerExtrasEnabled = True
93 , _appDelegateConfig_developerExtrasEnabled = True
102 , _appDelegateConfig_applicationOpenFile = \_ -> return False
94 , _appDelegateConfig_applicationOpenFile = \_ -> return False
@@ -108,12 +100,6 @@ data AuthorizationOption = AuthorizationOption_Badge
108 | AuthorizationOption_CarPlay
100 | AuthorizationOption_CarPlay
109 deriving (Show, Read, Eq, Ord)
101 deriving (Show, Read, Eq, Ord)
111−data ApplicationState = ApplicationState_Active
112− | ApplicationState_Inactive
113− | ApplicationState_Background
114− | ApplicationState_Unknown CInt
115− deriving (Show, Read, Eq, Ord)
117data AppDelegateNotificationConfig = AppDelegateNotificationConfig
103data AppDelegateNotificationConfig = AppDelegateNotificationConfig
118 { _appDelegateNotificationConfig_requestAuthorizationWithOptions :: Maybe (Set AuthorizationOption)
104 { _appDelegateNotificationConfig_requestAuthorizationWithOptions :: Maybe (Set AuthorizationOption)
119 , _appDelegateNotificationConfig_registerForRemoteNotifications :: Bool
105 , _appDelegateNotificationConfig_registerForRemoteNotifications :: Bool
@@ -176,13 +162,6 @@ run' cfg main = do
176 applicationWillTerminate <- newStablePtr $ _appDelegateConfig_applicationWillTerminate cfg
162 applicationWillTerminate <- newStablePtr $ _appDelegateConfig_applicationWillTerminate cfg
177 applicationSignificantTimeChange <- newStablePtr $ _appDelegateConfig_applicationSignificantTimeChange cfg
163 applicationSignificantTimeChange <- newStablePtr $ _appDelegateConfig_applicationSignificantTimeChange cfg
178 applicationUniversalLink <- newStablePtr $ _appDelegateConfig_applicationUniversalLink cfg
164 applicationUniversalLink <- newStablePtr $ _appDelegateConfig_applicationUniversalLink cfg
179− applicationDidReceiveRemoteNotification <- newStablePtr $ \n s -> do
180− let appState = case n of
181− 0 -> ApplicationState_Active
182− 1 -> ApplicationState_Inactive
183− 2 -> ApplicationState_Background
184− _ -> ApplicationState_Unknown n
185− _appDelegateConfig_applicationDidReceiveRemoteNotification cfg appState s
186 applicationOpenFile <- newStablePtr $ fmap fromBool . _appDelegateConfig_applicationOpenFile cfg
165 applicationOpenFile <- newStablePtr $ fmap fromBool . _appDelegateConfig_applicationOpenFile cfg
188 -- AppDelegate notification configuration
167 -- AppDelegate notification configuration
@@ -206,7 +185,6 @@ run' cfg main = do
206 applicationWillTerminate
185 applicationWillTerminate
207 applicationSignificantTimeChange
186 applicationSignificantTimeChange
208 applicationUniversalLink
187 applicationUniversalLink
209− applicationDidReceiveRemoteNotification
210 (fromBool requestAuthorizationWithOptions)
188 (fromBool requestAuthorizationWithOptions)
211 (fromBool $ Set.member AuthorizationOption_Badge authorizationOptions)
189 (fromBool $ Set.member AuthorizationOption_Badge authorizationOptions)
212 (fromBool $ Set.member AuthorizationOption_Sound authorizationOptions)
190 (fromBool $ Set.member AuthorizationOption_Sound authorizationOptions)