We can handle push notifications in 2 ways:
If the enableAppDelegateSwizzling
property of your SKTSettings object is set to YES
, then Sunshine Conversations will automatically handle any push notifications that originated from Sunshine Conversations before forwarding to your app delegate’s didReceiveRemoteNotification
method.
If you set that property to NO
, then you will have to call [Smooch handlePushNotification:userInfo]
in your didReceiveRemoteNotification
callback. To check the origin, you use the following code:
BOOL isSmoochNotification = userInfo[SKTPushNotificationIdentifier] != nil
You can find official documentation about this in the Sunshine Conversations header files, or in our API docs:
http://docs.smooch.io/api/ios/Classes/SKTSettings.html#/c:objc(cs)SKTSettings(py)enableAppDelegateSwizzling, http://docs.smooch.io/api/ios/Classes/Smooch.html#/c:objc(cs)Smooch(cm)setPushToken:, http://docs.smooch.io/api/ios/Classes/Smooch.html#/c:objc(cs)Smooch(cm)handlePushNotification:
The iOS SDK provides a method to present Sunshine Conversations in a custom ViewController.
The delegate method conversation:shouldHandleMessageAction:
is called whenever a user taps an SKTMessageAction
. You can perform custom handling in this method, and return false
to cancel Sunshine Conversations’s default handling of the tap. Read more about it in the iOS SDK Reference
It’s best to implement SKTConversationDelegate
in your code and track state of the conversation view controller this way. The two methods you’ll want to use are described in the following links:
http://docs.smooch.io/api/ios/Protocols/SKTConversationDelegate.html#/c:objc(pl)SKTConversationDelegate(im)conversation:willShowViewController: http://docs.smooch.io/api/ios/Protocols/SKTConversationDelegate.html#/c:objc(pl)SKTConversationDelegate(im)conversation:willDismissViewController:
Although we provide a powerful, fully capable UI - some applications require building something entirely bespoke. You can use our core iOS API to build your own UI on top of Sunshine Conversations.
The SKTConversaton and SKTConversationDelegate should provide you with everything you need.
Read more about this in our documentation.
Currently, we don’t provide support for switching between app IDs during the same application session. You can however switch users during the same session (by calling smooch.login with a different userId).
Library not loaded: @rpath/Frameworks/Sunshine Conversations.framework
. How can I fix this ?In your project build settings, make sure Runtime Search Paths (LD_RUNPATH_SEARCH_PATHS)
is set to $(inherited), @executable_path/Frameworks
.