2017-07-24 7 views
0

Ich arbeite an der Integration des Anmeldebildschirms einer Anwendung, die ich mit AWS Cognito erstellen möchte, und befolge die Schritt-für-Schritt-Anweisungen zur Verbindung mit dem Server.AWS Cognito Integration

Schritt 5 von 7 Kopie des Mobile Hub Helper und Custom Code

Kopieren Sie die src/main/java/com/amazonaws Ordner aus dem Code, den Sie in den java/com-Ordner Ihres Android Studio-Projekt heruntergeladen.

Dieser Ordner enthält eine Reihe von Hilfsklassen, die speziell für Sie generiert wurden. Diese wurden basierend auf Ihrer Projektkonfiguration und den AWS-Cloudressourcen und -IDs generiert, die bei der Konfiguration des Projekts für Sie erstellt wurden. Diese Klassen vereinfachen die Verwendung aller SDKs, die für die Unterstützung Ihres Projekts erforderlich sind.

Es enthält auch den Quellcode für den AWSMobileClient, der eine Singleton-Komponente ist, die die App bootstrappt und einen Identity Manager zum Einrichten der Benutzeridentität mit Amazon Cognito erstellt. Wenn Ihr Projekt die Mobile Hub NoSQL-Funktion verwendet, enthält der AmazonAws-Ordner auch Modellklassen, die Ihren Zugriff auf die von Ihnen konfigurierten DynamoDB-Tabellen vereinfachen.

Ich glaube, ich habe Probleme mit der letzten Hälfte dieses Bits, da ich nicht sicher bin, was eine Singleton-Komponente ist oder wie man sie in den Code einfügt. Ich habe es als Java-Klasse erstellt und enthalten den enthaltenen Code

Paket com.your.app;

importieren android.support.multidex.MultiDexApplication; importieren android.util.Log;

importieren com.amazonaws.mobile.AWSMobileClient;

/** * Anwendungsklasse, die für die Initialisierung von Singletons und anderen gemeinsamen Komponenten zuständig ist. */ public class Anwendung erweitert MultiDexApplication {

private final static String LOG_TAG = Application.class.getSimpleName(); 

@Override 
public void onCreate() { 
    Log.d(LOG_TAG, "Application.onCreate - Initializing application..."); 
    super.onCreate(); 
    initializeApplication(); 
    Log.d(LOG_TAG, "Application.onCreate - Application initialized OK"); 
} 

private void initializeApplication() { 

    // Initialize the AWS Mobile Client 
    AWSMobileClient.initializeMobileClientIfNecessary(getApplicationContext()); 

    // ... Put any application-specific initialization logic here ... 
} 

}

aber ich eine rote Linie im Manifest bekommen, weil es nicht in eine XML-Datei verbunden ist, aber die Anweisungen nie eine XML hinzuzufügen sagen oder um es an eine XML-Datei anzuhängen, also bin ich nicht sicher, wie man diese Eigenschaften anschließt. Ich stelle mir vor, dass die Application-Klasse nach dem Start gefüllt werden sollte, d. H. App öffnet den Anmeldebildschirm und initiiert irgendwie die Kommunikation mit dem Server, um die Zeichenfolgen, die in die Textfelder eingegeben wurden, zu übertragen.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.jason.mvp"> 

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="Dreamer" 
    android:roundIcon="@mipmap/ic_launcher" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".LoginActivity" android:theme="@style/NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Application"/> 
    <activity android:name=".MainActivity" /> 
    <activity android:name=".RegisterActivity" android:theme="@style/NoActionBar" 
     android:parentActivityName="com.example.jason.mvp.LoginActivity" > 


    </activity> 
</application> 

</manifest> 

kann mir jemand helfen !? Vielen Dank!

Antwort

0

Jessy,

Es sieht aus wie Sie nicht 7 noch Schritt zu tun hat oder haben es falsch? Anstatt .application als eine Aktivität haben, sollten Sie stattdessen direkt unter Anwendung hinzufügen:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="Dreamer" 
    android:roundIcon="@mipmap/ic_launcher" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" 
    android:name="com.example.jason.mvp.Application"> 

begonnen haben Sie die Integrationsschritte für „User Sign-In“ noch? Sie müssen auch durch diese Schritte gehen. Eine Möglichkeit, die Anmeldeansicht anzuzeigen, besteht darin, eine Splash-Aktivität zu verwenden, wie in Schritt 3 der Benutzeranmelde-Integrationsschritte beschrieben.

Kevin

+0

Hat Kevins Lösung Ihre Probleme gelöst? –