NSUserActivity for Siri Shortcut in Objective C
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



NSUserActivity for Siri Shortcut in Objective C

These are the steps to create a Siri Shortcut using Objective C. Very easy and quick on iOS12

1: Enable Siri in Capabilities tab of your project.

2: Add the Intents framework in the Linked Frameworks and Libraries tab. Under target->General

3: In the project plist, add an entry: NSUserActivityTypes with string = project bundle ID.activity name. For example: com.awesomeapps.myawesomeapp.myactivity

4: Create a NSUserActivity. Set two variables to true, setEligibleForSearch and setEligibleForPrediction. Make it current once.

This will make it available to Siri.

For example: (k_activityID is your bundle ID+activity name For example: com.awesomeapps.myawesomeapp.myactivity)

NSUserActivity *theActivity = [[NSUserActivity alloc]initWithActivityType:k_activityID]; theActivity.title = @"Run Me"; [theActivity setEligibleForSearch:true]; [theActivity setEligibleForPrediction:true]; theActivity.persistentIdentifier = k_activityID; theActivity.suggestedInvocationPhrase = @"Run Me"; self.view.userActivity = theActivity; [theActivity becomeCurrent];

5:Handle the activiy in: -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id> * _Nullable))restorationHandler You can query the userActivity.title to verify the activity.

if ([theActivity.title isEqualToString:k_activityID]){ // do the activity


6: In settings app->Siri you will be able to see your Shorcuts and record a command to execute them.