Как запустить собственное приложение с другим действием (не MainActivity) - PullRequest
2 голосов
/ 21 октября 2019

Я хочу сделать две иконки приложений для разных целей. Можно ли вызывать разные компоненты пользовательского интерфейса из другого значка приложения? А также меня смущает, в чем разница между «Активностью» и «Намерением».

Я новичок в React Native. Мне очень нужна твоя помощь.

1 Ответ

1 голос
/ 21 октября 2019

для андроида, реактивный-родной запускается, во-первых, действие является ОСНОВНЫМ действием, вы можете настроить его, это означает, что вы можете изменить действие. В основном упражнении вы можете настроить основной компонент, который зарегистрирован в индексе js.

 <activity
        android:name=".MainActivity"


        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
        </intent-filter>
    </activity>

  // Main Activity config the firstly start component
  @Override
  protected String getMainComponentName() {
    return "MainComponent";
  }

 // in the rn index.js
 import { AppRegistry } from 'react-native';
 import App from './App';
 AppRegistry.registerComponent('MainComponent', () => App);

, как в приведенном ниже коде, вы можете настроить, какое действие запустить, какой компонент является основным компонентом.

Что касается намерения и активности, то активность - это пользовательский интерфейс, показанный для пользователя, намерение - это обычный способ начать деятельность, вы можете прочитать официальный API

, еслиЕсли вы хотите начать другое действие, вы должны написать модуль моста, определить метод для запуска действия, а затем импортировать его в компонент, который вы используете. подробности о модуле моста вы можете найти на официальном сайте реактивных собственных модулей для Android

public class UtilModule extends ReactContextBaseJavaModule {


private static Activity ma;


public UtilModule(ReactApplicationContext reactContext) {
    super(reactContext);
}


public static void initUtilModule(MainActivity activity) {
    ma = activity;
}

@Override
public String getName() {
    return "UtilModule";
}



@ReactMethod
public  void  startActiviy() {
    Intent intent = new Intent(ma,MailActivity.class);
    ma.startActivity(intent);
}

}

...