ios running service

Re: Ranorex Service on iOS 10 losing connection.Hi Felix,Unfortunately, I'm not aware of this problem.Would it be possible to send an email to with a detailed description of your issue.We can look into it remotely if it is necessary.GoToAssist Service Desk App for iOS Using the GoToAssist Service Desk app, you can view and manage your their incidents while on the go using your iPhone, iPad, or Apple Watch.You can even create new incidents directly from the app – anytime, anywhere!Download the GoToAssist Service Desk App for iOS (for devices running iOS 8.0 or later) Note: For more information, please see the System Requirements.iOS Topics in this article: View incident queues View and edit incident details Create new incidents View incident queues on your Apple Watch Access Settings and log out View incident queues When you first log in to the app, the Home screen will automatically display a list of incidents.From there, you can do any of the following: Switch between viewing incidents for a specific service or viewing all incidents (Global view) by tapping the Service selection menu in the top navigation, then selecting the desired view.
Switch between Incident Queues by tapping the Incident View toolbar below the Settings icon .This allows you to view all open incidents, only those assigned to you, only those created today or only those included in an existing report queue.Search for specific incidents by tapping the Search icon in the toolbar.View and edit incident details (see View and edit incident details for more information).View and edit incident details Tap an incident on the Home screen to view more information; you can switch between the Overview, Discussion, and Details tabs to view the incidents details, leave a comment in the Discussion and even edit some fields from each tab.View-Only Details: These fields you can view for each incident.Discussion commentsDate openedService Editable Details: These fields you can modify.Simply tap a field to change it directly from the app.CustomerSymptomResolution detailResolution status & icon (i.e., red icon if unresolved, green icon if resolved)Add a comment to the Discussion & set as visible or hidden from customerPriorityDue dateStatusAssignee Incident TypeIncident CategoryCustom fields Create new incidents You can create incidents while on the go directly from the mobile app.
Tap the Create icon on the Home screen.Select a Service.Enter an incident title.Enter the symptom details.If desired, add a Customer to be associated with this incident.Tap Create in the top navigation.You can then edit the incident’s details to add more information.View incident queues on your Apple Watch You can use the Apple Watch integration to view up to 8 queue metrics directly on your Apple Watch!Adding existing queues for display on your Apple Watch will require an iOS device with the GoToAssist Service Desk app for iOS installed.Note: Queues can be only be created from within the web app.For more information, see Create, Save and Share Custom Reports.From your iOS device, tap the Settings icon > Customize Apple Watch > Add Metric.Tap a Service to display its existing queues.If you want to set up a new queue, see Create, Save and Share Custom Reports.Tap the Add icon to select a queue.Tap the queue name to edit the Short Name (i.e., the name that appears on Apple Watch display).Select a color for the incident number display (preview shown at the top of the screen).Tap the Back arrow to return to the metrics list view.For 2 or more incident queues, tap and hold the Move icon to adjust order of appearance as desired.Tap Remove from Watch to remove a queue.
Access Settings and log out Under Settings you can customize settings for your Apple Watch, view information about the mobile app, provide feedback, or log out.Tap the Settings icon .Select or view the desired option: Customize Apple Watch – Enable and customize the integration with your Apple Watch.Privacy Policy – Access the Privacy Policy Overview.Terms of Service – Access the Terms of Service.Third Party Notices – Access a list of permissions granted by associated third parties.Feedback – Provide feedback directly to the GoToAssist Service Desk team.Version – View the version of the app.Log Out – Log out of your Service Desk account.iqos anmeldenThis is a developers’ guide for setting up an Urban Airship for a Native iOS application.ios store image locally
We will take you through the basic technical steps for configuring Apple and UA services, show you how to send your first basic push notification and Message Center message, and provide detailed samples and instructions for using advanced Urban Airship features.There are a few important steps to get out of the way when integrating Urban Airship with your app for the first time.ios shopping list syncFollow these instructions carefully to ensure that you will have a smooth development experience.best portable personal vaporizerWhile you are setting up your development and production apps, you need to configure them for push services.baby humidifiers reviews
For detailed instructions on this process, please see the APNS Setup documentation.The Urban Airship SDK can be installed using CocoaPods, Carthage, or manually.Pick the option that makes the most sense for your project.Before you begin, ensure that you have CocoaPods installed.If you are having troubles with CocoaPods, check out the troubleshooting guide.make best homemade vaporizerSpecify the UrbanAirship-iOS-SDK pod in your podfile and make sure to specify the flag use_frameworks!ios location programmingAfter running pod install, an Xcode workspace (extension .xcworkspace) will be generated.ios kotor reviewMake sure to always open it instead of the project file (extension .xcodeproj) when building your projects.ios location authorization
$ brew update $ brew install carthage Before you begin, ensure you have Carthage installed.Specify the Urban Airship iOS SDK in your cartfile: Add the Urban Airship iOS SDK to your cartfile and update Carthage to build all the defined modules in the cartfile.Once the update has completed, drag the built AirshipKit framework into your Xcode project from the Carthage build directory.Drop it in the “Linked Frameworks and Libraries” section of your application target’s “General” settings tab.Ensure AirshipKit.framework appears in the “Link Binary With Libraries” phase in your project’s Build Phases.Add AirshipKit.framework to a Copy Files phase in your project’s Build Phases.Ensure “Frameworks” is set as the destination.Verify Enable Modules and Link Frameworks Automatically are enabled in the project’s Build Settings.For more help, please read Carthage’s framework installation guide.Start by downloading the latest version of the iOS SDK.
Copy the AirshipKit directory into the top level of your app’s source directory.Drag AirshipKit.xcodeproj out of the AirshipKit folder and into your app project in Xcode (directly under the top level of the project structure).Now AirshipKit will be built at compile-time for the active architecture.To link against the embedded framework, add the AirshipKit.framework file to the Embedded Binaries section in the General tab for your target.This should also add it to the Linked Frameworks and Libraries section.Verify Enable Modules and Link Frameworks Automatically are enabled in the project’s Build Settings.Make sure AirshipKit.framework shows up in the Linked Frameworks and Libraries section in the General tab for your target.In order to take advantage of iOS 10 notification attachments, such as images, animated gifs, and video, you will need to create a notification service extension by following the iOS Notification Service Extension Guide.Use Xcode to enable push notifications in the target’s Capabilities pane: Enable background notifications that were introduced in iOS 7 by including the UIBackgroundModes key with the remote-notification value in your app’s Info.plist file.
When viewing the plist in Xcode, UIBackgroundModes is displayed as Required background modes and remote-notification is displayed as App downloads content in response to push notifications.You can also enable Background Modes and Remote notifications under the target’s Capabilities section: > developmentAppKey Your Development App Key developmentAppSecret Your Development App Secret productionAppKey Your Production App Key productionAppSecret Your Production App Secret useWKWebView Create a plist AirshipConfig.plist and include it in your application’s target.The default config will be loaded from the AirshipConfig.plist file if its included in the application target.(: , : [: { .()} @ ; - () *) *) { [ ; } TakeOff must be called on the main thread and before application:didFinishLaunchingWithOptions: returns.The Urban Airship SDK requires only a single entry point in the app delegate, known as takeOff.
Inside your application delegate’s application:didFinishLaunchingWithOptions: method, initialize a shared UAirship instance by calling UAirship takeOff .This will bootstrap the SDK and look for settings specified in the AirshipConfig.plist config file.If your app is targeting iOS 9 or higher, Message Center content features such as Landing Pages will only be able to load SSL-encrypted web content out of the box.This change, known as App Transport Security, will not affect content hosted on Urban Airship’s servers, which is SSL-encrypted.While we generally recommend leaving these default settings alone, if your app will need to load plain HTTP content then you can whitelist individual domains in your app’s Info.plist file.For more information, see Apple’s App Transport Security Technote.Enable notifications for a quick test after calling takeOff: .= , ., .] [ = ; [ = ( | | Remote notifications are only available on a real device.
You will not be able to send any notifications through APNS on a simulator.At this point in the guide, if you followed all the steps above you should be ready to send a test push notification to verify everything is set up properly.Before sending a push, you must enable user notifications.The SDK does not enable user notifications by default in order to avoid prompting the user for permissions before your app is ready to do so.But for a testing purposes, you can enable user notifications in the app delegate immediately after takeOff.You may also want to set default foreground presentation options to display the notification in the foreground on iOS 10.On older devices, make sure you background the app before sending the push.For more information on customizing push notifications or receiving callbacks, see Push Notifications.Follow Send Your First Notification or our API reference for details on sending the first notification.* = [ ; (, Adding an NSNotificationCenter observer for UAChannelCreatedEvent: ..(,
: ] : :() : : ( : , : ) { } - ()( *) ( *) { } Setting the registration delegate on UAPush: The Channel ID is a unique identifier that ties together an application/device pair on iOS devices.The Channel ID is used to target pushes to specific devices using the Urban Airship API.The Channel ID will be logged for all apps.You can always get the channelID with a couple of extra lines to your application: Don’t worry if this value initially comes back as null on your app’s first run as the Channel ID will be created and persisted during registration.You can listen for channel creation by either adding an NSNotificationCenter observer for UAChannelCreatedEvent or by implementing the UARegistrationDelegate protocol and setting the registration delegate on UAPush .You can listen for channel updates by adding an NSNotificationCenter observer for UAChannelUpdatedEvent .
= . . = .* = [ .= [ : The SDK provides a number of advanced configuration features that are defined by the UAConfig class.Only a subset of options will be outlined in this guide.For a full list of options, check out the available properties on the UAConfig class.Every option is able to be defined by the AirshipConfig.plist by setting the corresponding UAConfig property name to the desired value.Alternatively you can define any value programmatically by setting properties directly on a UAConfig instance and providing it during UAirship takeOff: .(: , : [: { .= } (_ : , : ) { .(.,: ) } (_ : , : ) { .(.,: ) } (_ : , : ) { .(,: ) } (_ : , : [ : : @ () ) { .(,: , : ) } (_ : , : : [ : : @ ) { = { .(,: , : , : ) } } (_ : , : : [ : : [ : : @ ) { = { .(,: , : , : , : ) } } (: , : , : (: ) ) { .(,
: , : ) } (: , : , : ) { .(,: , : ) } - ()( *) ( *) { [ = ; } - ()( *) ( *) { [ : : } - ()( *) ( *) { [ : : } - ()( *) ( *) { [ : : } )( *) ( *) ( (^ { [ : : : } - ()( *) ( *) ( *) ( (^ { [ : : : : } - ()( *) ( *) ( *) ( *) ( (^ { [ : : : : : } - () ( *) ( *) ( (^ { [ : : : } - () ( *) ( *) ( (^ { [ : : : } The Urban Airship SDK will automatically integrate with your app, so you do not need to implement any of the push-related UIApplicationDelegate or UNUserNotificationCenterDelegate protocol methods.The SDK is able to do this by intercepting app delegate messages and forwarding them to your original app delegate, using a technique known as method swizzling.This should be compatible with the vast majority of applications out of the box, but if you have advanced use cases for your app delegate, or if you would otherwise prefer to disable this behavior, you can set automaticSetupEnabled to NO.
If you choose to disable automatic integration, you will need to forward the appropriate methods to the Urban Airship SDK.Log levels can be set independently for production and development modes by setting developmentLogLevel and productionLogLevel config options.Urban Airship’s SDK provides a simple interface for managing push notifications within your iOS application.Enabling userPushNotificationsEnabled will prompt the user to for permission to send notifications.To increase the likelihood that the user will accept, you should avoid prompting the user for permission immediately, and instead wait for a more appropriate time in the app.The Urban Airship SDK makes a distinction between “user notifications”, which can be seen by the user, and other forms of push that allow you to send data to your app silently, or in the background.Enabling or disabling user notifications is a preference often best left up to the user, so by default, user notifications are disabled.
= (: ) { ..()} The SDK prevents disabling userPushNotificationsEnabled by default on iOS 8 and 9 due to iOS bugs.For those versions, we recommend that the application link directly to the application’s system push settings with the UIApplicationOpenSettingsURLString URL constant.= , ., .] [ = ( | | By default the Urban Airship SDK will request Alert, Badge, and Sound notification options for remote notifications.This can be configured by setting different types the notificationOptions on the UAPush instance.= , ., .] [ = ( | | The SDK provides support for foreground presentation options that were introduced in iOS 10.The three UNNotificationPresentationOptions constants are badge, sound, and alert.These constants specify how to present a notification when the application receives a remote notification in the foreground.You can set default presentation options that will be applied to all remote-notifications, and you can also provide options per notification by providing a UAPushNotificationDelegate .
Set the UAPushNotificationDelegate on UAPush: : , { (_ : , : @ () .){ ) } (_ : , : @ .){ } (_ : , : @ ) { } @( , *) ( : ) { , .] } } -() *) (^ { ( } -() *) (^ { } -() *) (^ { } - () *) { | ; } iOS handles push notifications received outside the application, but if a notification is received while the app is active, it’s up to the application developer to handle it.Versions prior to iOS 10 require the application developer to manually create an alert view and populate it with the notification contents.In iOS 10 and above, the application developer has the additional option of using a system-generated alert view.A system-generated alert view is presented if the alert type is included in the UNNotificationPresentationOptions set on UAPush’s defaultPresentationOptions property.These presentation options can be configured on a notification by notification basis by implementing the UAPushNotificationDelegate protocol’s presentationOptions callback and returning the desired presentation options.
The sample UI includes a complete implementation of the UAPushNotificationDelegate protocol that handles alerts, sounds, and badges.However, if you wish to customize this behavior, you can provide your own implementation.You can set (or reset) the badge number within your application by setting the badge number on the UAPush instance.A typical application will reset the badge any time a user starts the app or resumes it from the background.This can be done by making UAPush resetBadge calls from application:didFinishLaunchingWithOptions: and applicationDidBecomeActive.Additionally, Urban Airship support an auto-badge feature.This allows incrementing the badge from a push instead of setting the exact value for the badge.When using auto-badge, make sure to only modify the badge value through Urban Airship methods to ensure the value keeps in sync.: , : 7, : ) .] : : :7 : [ = ; ] Quiet time disables notification sounds during a set time frame by removing the sound APNS option before sending the notification to the device.
To help target specific devices or users for a notification, we have Tags, Named Users and Tag Groups.= [, , ] .()[ = , , ]; ] : ] : ] Tags are an easy way to group channels.Many tags can be applied to one or more devices.Then, a message sent to a tag will be sent out to all devices that are associated with that tag.After modifying tags, make sure to call updateRegistration to have the SDK sync the tags with Urban Airship.Associating the channel with a Named User ID, will implicitly disassociate the channel from the previously associated Named User ID, if it existed.Named Users allow you to associate multiple devices to a single user or profile that may be associated with more than one device, e.g., an end-user’s iPhone and iPad.A device can have only one Named User, and a single Named User should not be associated with more than 20 devices.Named Users provide the ability to directly set tags on them (see Tag Groups).
By default, Named Users can only be associated server-side.A 403 Forbidden response is returned if Named User association is attempted when client-side association is disabled.In order to associate a Named User through the application, you must change the application’s Named User security setting to allow Named Users to be set from devices.Please visit the Settings documentation to enable this option.., :) ., :) .] :, ] : ] :, ] : ] :] : ] Named User Tag Group Example: ., :) ., :) .] :, ] : ] :, ] : ] :] : ] If setting channel tags is enabled on the device, the predefined device Tag Group cannot be modified from the device and will log an error message.Disable channel tags by disabling channelTagRegistrationEnabled on the UAPush instance if you want to modify this “default” Tag Group.Tag groups are configurable namespaces for organizing tags for the channel and Named User.
Please view the Tag Groups documentation for more details.The Tag Group Walkthrough will guide you through the creation of your first Tag Group.By default, Tag Groups can only be modified from the server.A 403 Forbidden response is returned if Tag Groups modification is attempted when client-side Tag Groups is disabled.In order to modify Tag Groups through the application, you must change the application’s Tag Group security settings to allow these tags to be set from devices.* = [ : : .= [ ; .= : In addition to Named Users, tags, and Tag Groups, you can assign up to 20 custom identifiers to users.Identifiers that define additional ways of looking at a user – for example, iOS Vendor ID, iOS Advertising ID, Google Analytics CID, or any other identifier you deem significant – can be added to your users.Custom identifiers will be visible in the Connect data stream.We recommend adding any IDs that you may want to be visible in Connect, even if Connect does not yet support the relevant integration.
Unlike the other identifiers (e.g., tags), you cannot use custom identifiers to target your users.Urban Airship provides a set of standard Interactive Notification types (See: Built-In Interactive Notification Types).It is the type that determines which buttons and corresponding labels will be available when you send a push.See the next section for where to specify that in the push payload.You control what happens when you send the push separately, by tying each button ID to a specific action.= (: , : , : , ., .= (: , : [ : : .* = [ : : | | * = [ : :] : : [ = [ :] ] Urban Airship reserves category IDs prefixed with “ua_”.Any custom categories with that prefix will be dropped.In order to define a custom Interactive Notification type, you must register a new category.Custom categories are supported by setting the set of categories on UAPush customCategories .
Categories can be set after takeOff.Any modifications to the user notification categories will require an update to the registration settings by calling UAPush updateRegistration .Custom-defined Interactive Notification types can either make use of Urban Airship’s pre-defined actions, or you can write new custom action code.Callbacks are also provided through the UAPushNotificationDelegate .Urban Airship Actions provides a convenient way to automatically perform tasks by name in response to push notifications, Message Center App Page interactions and JavaScript.An action is an abstraction over a unary function, which takes an argument and performs a defined task, producing an optional result.Actions may restrict or vary the work they perform depending on the arguments they receive, which may include type introspection and runtime context.The Urban Airship library comes with pre-made actions for common tasks such as setting/modifying tags, showing a landing page, enabling deep linking, scheduling or canceling action schedules, and deep linking.
Actions can also be extended to enable custom application behaviors and engagement experiences.In iOS, Actions are sent as part of the notification payload as top level key values, where the key is the name of the action and the value is the action’s argument.The argument can be any valid JSON value.Actions are triggered with extra context in the form of a Situation.The different situations allows actions to determine if they should run or not, and possibly do different behavior depending on the situation.: :, ] Looking up an action entry: = ..(:) * = : (: ) { . . } ..(,: ) = ^( *) { (.: : The action registry is the central place to register actions by name.Each entry in the registry contains an action, the names that the action is registered under, a predicate that allows filtering when an action can run, and allows specifying alternative actions for different situations., : , : .){ (: ) () } .(,
: , : .){ (: ) () } = ^( *) { ( [ : : : : [ : : : : All actions are run on the main queue.If its possible for an action to block the main queue, it should perform its work on a background queue and call the UAActionCompletionHandler when finished.Actions can be programmatically through the UAActionRunner , by defining actions in a push notification, from JavaScript using a Custom HTML Templates, or from an automation schedule.= (: { (: , : ) ()") (.:) * = [ : ^( *, ) { (, : : The action framework supports any custom actions.Create an action by extending the base action class or defining an action using blocks.After takeoff, register the action.The action can be triggered the same way as built-in actions.On-device automation allows the Urban Airship SDK to execute actions when certain conditions are met upon the creation of an analytics event.These conditions are defined as triggers and range from app foreground to screen events.
Actions can be scheduled either through an action or using the APIs exposed by the SDK.Example schedule payload that will display a landing page after a user has either visited a given page ten times or, as reported through a custom event, purchased items beyond a threshold of $30.{ : : 1, : , : , : , : [ { : , : , : { : { : } } { : , : , : { : [ { : , : { : } { : , : [ : { : } } } ] } } The “schedule_actions” action enables scheduling through the Push API as an “app defined” action, through the Urban Airship JavaScript bridge, or directly in the SDK by manually running the action.There are several components to this schedule payload. := | | | := { "not": { } } := { "and": [, , …] } := { "or": [, , …] } := { , "value": { }} | { "value": {}} := , "key": string | "key": string | := "scope": string | "scope": [string, string, …] := | | := "equals": number | "at_least": number | "at_most": number | "at_least": number, "at_most": number := "equals": string := "is_present": boolean The predicate is the core logic within the trigger, presenting a set of structured conditions that are applied to the trigger event.
It follows the same patterns as in Custom Event Selectors and may be a value matcher or logical expression.: { : , a : , : , : , : [ } : : { : [, : [, ] } Just like scheduling actions, canceling scheduled actions can be done with the “cancel_scheduled_actions” action.The API provided in UAAutomation allows for access to the automation storage.= { () = (: ) = (: , : ) = (: ) = .(:, : 2) = .(:= [: ] .= [, ] .= (: ) ; .= (: ) ; } .(){ () ()" } * = [ :^( *) { * = [ : * = [ : : * = [ : * = [ : :2 * = [ :2 .= : }; .= , ]; .= [ : .= [ : ] : :^( *) { (, .When a UAActionScheduleInfo instance is scheduled, the module will return a UAActionSchedule instance with a unique ID generated for the the schedule.{ () } .{ () } .(){ () } ] : :^( *) { ] :^(< *) { ] : :^(< *) { The API provides methods for retrieving a single schedule, group of schedules, or all schedules.
] : ] : ] Lastly, a series of methods are provided for canceling a single schedule, a group or list of schedules, or all schedules.Our iOS client library ships with analytics support out of the box, and by default, there are no explicit preferences you need to set in order to enable reporting.The integration is handled automatically unless you set automaticSetupEnabled to NO.If so, verify you followed the steps in Automatic Integration for proper integration.Our client library stores events in a local database and uploads them periodically in a background thread.We’ve taken great care to make sure that the database won’t grow beyond a small fixed size, so extended periods of lost connectivity are nothing to worry about.The event upload thread is woken up when new events are triggered and goes to sleep when there are no more events to process, so the impact on battery life is negligible.= (: , : ) ..()* = [ : : : Custom events let you track user activities and key conversions in your application, and tie them back to corresponding push messaging campaigns.
Custom events requires analytics to be enabled.If disabled, any event that is added to analytics will be ignored.For a more detailed explanation on custom events and possible use cases, see the Custom Events topic guide.Convenient templates are provided to create custom events for common account, media or retail related events.For more details see the iOS Event Templates topic guide.The Urban Airship SDK gives you the ability to track what screen a user views within the application, as well as how long the user stayed on that screen and the user’s previous screen.These events then come through Urban Airship Connect and allow you to see the path that a user takes through an application, or to trigger actions based on a user visiting a particular area of the application.When a new screen is tracked or when the application backgrounds, a screen tracking event will be generated.Normally, screen tracking should be called in a view controllers viewDidAppear: method, however it can be called anywhere in the application to start tracking a new screen event.
If you do not wish to include analytics and reporting in your application, in your AirshipConfig.plist file, simply set the analyticsEnabled to NO.When analytics is disabled at runtime it will delete any locally stored events and prevent any events from uploading.Features that depend on analytics being enabled may not work properly if it’s disabled (reports, location segmentation, region triggers, push to local time).The default message center can be displayed at any time by calling display on the UADefaultMessageCenter instance.= (: , : , : , : 1) .= (: , : ) .= * = [ .= [ : : : :1 .= [ : : .= [ : : [ = ; The default message center’s look can be customized by creating a UADefaultMessageCenterStyle instance, setting its style properties, and then setting the style property of the Message Center instance to the customized style instance.> titleFont fontName Roboto-Regular fontSize 17 titleColor #00698f tintColor #00698f navigationBarColor #eaaa00 iconsEnabled cellTitleFont fontName Roboto-Bold fontSize 13 cellDateFont fontName Roboto-Light fontSize 17 This can also be done without writing code by creating a plist file.
Create a plist with the desired message center style.All the keys correspond to properties on the UADefaultMessageCenterStyle class.Save the plist and include it in the application’s target.Then, update messageCenterStyleConfig with the name of the plist file.= { (, _) = ![ = [ :^( , *) { * = ( *); [.: Sometimes it can be useful to filter the contents of the message center according to some predetermined pattern.To facilitate this, use the UADefaultMessageCenter filter property to set a predicate.Once set, only messages that match the predicate will be displayed.As a simple example, the filter shown keeps only messages whose titles contain the string “Cool”.= . . = ] [ = .; For custom Message Center implementations, initialize the UAInboxDelegate with the custom Message Center implementation’s view controller.This is necessary to ensure that the default modal Message Center is not displayed on top of the custom Message Center when a message is received.
Updating badge value to message center unread count: (: ) { (.. 0) { .= .. } } - ()( *) { .= [ .; } } The value of the badge can be set in a number of ways.Most often, the number corresponds with some notion of unread or unviewed content, e.g., email messages or friend requests.The most common way to update the badge is directly through APNS, either by passing along the badge integer in the payload of a push notification, or by telling the app to adjust the value using our autobadge feature.For applications implementing the Message Center, you may want the badge value to represent the actual state of unread messages in the Message Center.If so, then you need to set this behavior in the application delegate.If you use this method then you should never include badge values in the payload of push notifications, because Message Center will override them.In-app messaging requires remote-notification background mode.
In-app messages are banner notifications that appear inside of your app.Aside from giving you the power to engage with users as they browse your app, they also allow you to reach opted out users in iOS 8 and above, a segment of the app audience that has previously been difficult to target.Adjusting the auto-display delay to five seconds: By default, in-app messages will only display a single banner on app foreground after a three-second delay.You can change this by setting the displayDelay property on [UAirship inAppMessaging] : Exercise caution when using display ASAP mode.The default auto display behavior for in-app messages is designed to offer a balance between immediacy and user experience, by minimizing the chance of accidentally disrupting the user’s activities in your app.Push automation may also occasionally see latencies that result in associated in-app messages being displayed in unexpected contexts.
Enabling display ASAP mode will cause the SDK to display the in-app message on arrival.If the app is currently in the background, the in-app message will be displayed on the next foreground after the auto display delay.If a message is already displaying when a new in-app message is received, the new message will be displayed once the currently displayed message is dismissed, after the autodisplay delay.The automatic display of in-app messages can be disabled, either to block message display in response to user preferences or to manually control when and where messages should be displayed.In the latter case, message display can be triggered manually so that the most recent pending message is displayed at a time more appropriate for the app: Sending in-app message color overrides is supported through the composer and push API.Additional advanced styling can also be achieved by setting optional properties on the UAInAppMessaging class.
More comprehensive custom UI is possible by setting an optional UAInAppMessageControllerDelegate on the UAInAppMessaging object, which is used to configure details such as custom message views and animation hooks.Urban Airship UALocation exposes a very simple, high-level API for requesting location.Urban Airship’s location framework relies on Apple’s significant-change location service, which lessens battery impact but requires always-on usage.See Getting the User’s Location for details.Before you can access the user’s location, the user must authorize your application via a location authorization prompt.For the authorization prompt to display properly, you must add the NSLocationAlwaysUsageDescription key to your application’s info.plist.When location updates are enabled for the first time it will prompt the user for permission.This behavior can be changed by disabling autoRequestAuthorizationEnabled: Once the app backgrounds, location updates will be suspended by default, then resumed again once the app is foregrounded.