yuanpc
yuanpc

Reputation: 39

How to achieve similar effects to systemNavigationAction on iOS17

I want to automatically return to the application where the keyboard is located after opening the host application from the keyboard extension. This can be achieved under iOS17 using systemNavigationAction.

I'm trying This :

@import UIKit;
@import ObjectiveC.runtime;

@interface UISystemNavigationAction : NSObject
@property(nonatomic, readonly, nonnull) NSArray<NSNumber*>* destinations;
-(BOOL)sendResponseForDestination:(NSUInteger)destination;
@end

inline BOOL jumpBackToPreviousApp() {
    Ivar sysNavIvar = class_getInstanceVariable(UIApplication.class,     "_systemNavigationAction");
    UIApplication* app = UIApplication.sharedApplication;
    UISystemNavigationAction* action = object_getIvar(app, sysNavIvar);
    if (!action) {
        return NO;
    }
    NSUInteger destination = action.destinations.firstObject.unsignedIntegerValue;
    return [action sendResponseForDestination:destination];
}

but object_getIvar return nil;

Upvotes: 2

Views: 395

Answers (0)

Related Questions