By default, Instabug is shown when the device is shaken. This can be changed to several other events that can show the SDK. You can also show the SDK manually from a custom gesture or a button you add to your app.
You can set the SDK to be invoked when your users do one or more of the following actions:
- Shake device
- Take a screenshot
- Tap on a floating button shown above your app's UI
- Pan to the left from the right edge of the screen (one-finger swipe left)
- Swipe with two fingers from right to left
- None (manual showing)
Screenshot Gesture Recommendation
We recommend using the screenshot gesture to show Instabug only in your internal and beta builds. The screenshot gesture is already utilized by the OS to show the edit view of the captured screenshot. Hence, while using Instabug in your live app on the App Store, we recommend using the other gestures: shake, pan, two fingers swipe or manually through the app's UI.
How to show Instabug
You have the option to set one or multiple invocation events. To customize the invocation events, pass the values of the
IBGInvocationEvent enum when starting the SDK.
Instabug.start(withToken: "YOUR-TOKEN-HERE", invocationEvents: [.shake, .screenshot])
[Instabug startWithToken:@"YOUR-TOKEN-HERE" invocationEvents: IBGInvocationEventShake | IBGInvocationEventScreenshot];
The possible invocation events are below.
.none .shake .screenshot .twoFingersSwipeLeft .rightEdgePan .floatingButton
IBGInvocationEventNone IBGInvocationEventShake IBGInvocationEventScreenshot IBGInvocationEventTwoFingersSwipeLeft IBGInvocationEventRightEdgePan IBGInvocationEventFloatingButton
If you are using the floating button, you can set its default position as explained here.
Use the "none" event if you want to show the SDK manually in order to prevent the SDK from being shown through the other events.
If you are using the shaking gesture as your invocation event, you can set how sensitive the device should be to the shaking. The thresholds in the example below are the default values. The higher the value, the less sensitive the device will be to shaking.
BugReporting.shakingThresholdForiPhone = 3.0 BugReporting.shakingThresholdForiPad = 1.0
IBGBugReporting.shakingThresholdForiPhone = 3.0; IBGBugReporting.shakingThresholdForiPad = 1.0;
If you want to change the invocation event to any of the other supported events, you can do so at runtime as shown below.
BugReporting.invocationEvents = [.shake, .screenshot]
[IBGBugReporting setInvocationEvents:IBGInvocationEventShake | IBGInvocationEventScreenshot];
By default, when the Instabug SDK is invoked, a popup appears to your app users that asks "How can we help you?" with options for them to report a bug ("Report a problem"), share feedback ("Suggest an improvement"), or send you a message ("Ask a question") if In-App Chat is supported in your plan.
The Prompt Options menu appears when Instabug is shown in your app.
Instead of showing this Prompt Options menu that lets your users choose what they want to do, you can skip this step and take users directly to the bug or feedback reporting flow or chat pages.
For bug and feedback reporting, you can also specify invocation options as described here.
// Compose a new bug report BugReporting.show(with: .bug, options: ) // Compose a new feedback BugReporting.show(with: .feedback, options: ) // Compose a new chat Chats.show() // Show the perevious chats list Replies.show()
// Compose a new bug report [IBGBugReporting showWithReportType:IBGBugReportingReportTypeBug options:0]; // Compose a new feedback [IBGBugReporting showWithReportType:IBGBugReportingReportTypeFeedback options:0]; // Compose a new chat [IBGChats show]; // Show the perevious chats list only of the the user already have a chats history. Calling this API won't have an effect otherwise. [IBGReplies show];