Как настроить response-native-навигацию с response-native-siri-shortcut (проблема с rootView)

Я установил переустановку jdk. В моем случае необходимо было сделать:

java -version
sudo apt-get purge openjdk*
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
java -version
javac -version

, взятый из Установить Java JDK + JRE (oracle) в Kubuntu 13.04 из apt

1
задан Quizzy 12 March 2019 в 15:13
поделиться

1 ответ

На самом деле, в процессе поиска свойства launchedFromShortcut на github я понял, что оно не используется в Javascript. Поэтому используется только флаг , чтобы сообщить, было ли приложение запущено с ярлыка, и передача его в RNN RNNReactRootViewCreator кажется ненужной.

Убрано, что необходимость интеграции оказалась довольно простой, нам нужно только добавить launchedFromShortcut = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey] != nil; в didFinishLaunchingWithOptions и проверить ее значение в continueUserActivity.

AppDelegate.m будет выглядеть следующим образом:


#import "AppDelegate.h"
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <ReactNativeNavigation/ReactNativeNavigation.h>
#import <RNSiriShortcuts/RNSiriShortcuts-Swift.h>

@implementation AppDelegate
BOOL launchedFromShortcut;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  launchedFromShortcut = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey] != nil;
[ReactNativeNavigation bootstrap:jsCodeLocation launchOptions:launchOptions];

    //    
    // Regular RNN bootstrap code omitted for brevity sake
    //    

  return YES;
}


- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> *restorableObjects))restorationHandler
{

    if (launchedFromShortcut) {
        ShortcutsModule.initialUserActivity = userActivity;
        launchedFromShortcut = NO;
    }

    [ShortcutsModule onShortcutReceivedWithUserActivity:userActivity];
    return YES;
}

@end
0
ответ дан Jaime Agudo 12 March 2019 в 15:13
поделиться