首次启动时停留在启动屏幕上,但是如果我们不终止应用程序并再次启动应用程序,则该应用程序可以正常工作。 (react-native)Android

问题描述 投票:2回答:1

我已经将代码从0.53.3升级到本机0.59.9。我想我可能错过了一些基本步骤和启动问题。请检查并帮助我使应用正常运行。

React Native Navigation版本:4.0.6

React本机版本:0.59.9

平台(iOS和/或Android?):Android。

设备信息:设备和模拟器都(所有Android版本)。


MainActivity.java

public class MainActivity extends NavigationActivity {
static Backbonebits b;
public void addDefaultSplashLayout() {
LinearLayout splash = new LinearLayout(this);
Drawable splash_screen_bitmap = ContextCompat.getDrawable(getApplicationContext(),R.drawable.splashscreen);
splash.setBackground(splash_screen_bitmap);

    setContentView(splash);
}
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
b = new Backbonebits(this);
}
}

MainApplication.java

public class MainApplication extends NavigationApplication {

private static CallbackManager mCallbackManager = CallbackManager.Factory.create();

protected static CallbackManager getCallbackManager() {
    return mCallbackManager;
}

 @Override
 protected ReactGateway createReactGateway() {
     ReactNativeHost host = new NavigationReactNativeHost(this, isDebug(), createAdditionalReactPackages()) {
         @Override
         protected String getJSMainModuleName() {
             return "index";
         }
     };
     return new ReactGateway(this, isDebug(), host);
 }

 @Override
 public boolean isDebug() {
     return BuildConfig.DEBUG;
 }

protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        new FBSDKPackage(mCallbackManager),
  );
}

 @Override
 public List<ReactPackage> createAdditionalReactPackages() {
     return getPackages();
 }
}

App.js

import React, { Component } from 'react';
import {
Platform
} from 'react-native';
import { Navigation } from 'react-native-navigation'
import TermsOfUseController from "./app/routes/TermsOfUseController"
import Utility from './app/config/Utility';

const registerScreen = (name, component, styles) => {
component.navigatorStyle = {
...defaultNavigatorStyles,
...styles
};
Navigation.registerComponent(name, () => component)
}

function registerAllScreens() {
registerScreen('MyApp.LoginController', LoginController, {})
}

registerAllScreens();

User.loggedInUser((user) => {
User.addSignOutListner()
var screenName = 'MyApp.LoginController';
if (user) {
if (user.id != 0 && user.id != undefined) {
Utility.isFirstTimeLaunch = true
screenName = 'MyApp.HomeScreenController'; // User Already logged in
}
else {
Utility.isFirstTimeLaunch = true
screenName = 'MyApp.LoginController'; // Not Logged in
}
}
});

Navigation.events().registerAppLaunchedListener(() => {

Navigation.setRoot({
  root: {
    stack: {
      children: [{
        component: {
          name: screenName,
          passProps: { ...Navigation }
        }
      }],
      options: {
        topBar: {
          visible: false
        },
      }
    }
  }
});
});
});
android react-native react-native-navigation wix-react-native-navigation
1个回答
0
投票

我在用户检查条件内启动了侦听器。我把它放在外面解决了。它在android中创建了问题,尽管它在iOS上也可以。

© www.soinside.com 2019 - 2024. All rights reserved.