我想为不同的用途制作两个应用程序图标。是否可以从不同的应用程序图标调用不同的UI组件?我也很困惑“活动”和“意图”之间的区别。
我是React Native的新手。我非常需要您的帮助。
答案 0 :(得分:1)
对于android,react-native首先启动该动作是MAIN活动,您可以对其进行配置,这意味着您可以修改该活动。 在主要活动中,您可以配置已注册的主要组件 在索引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);
像下面的代码一样,您可以配置要启动的活动,哪个组件是主要组件。
对于意图和活动,活动是向用户显示的用户界面,意图 是开始活动的常用方法,您可以阅读the official Api
如果要开始其他活动,则必须编写一个桥接模块, 定义一种方法来启动活动,然后将其导入您使用的组件中。 有关网桥模块的详细信息,您可以访问react-native官方网站native modules for 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);
}
}