DocCheck: DocCheck Mobile Login Android

Der folgende Artikel richtet sich an App-Entwickler und ITler. Allgemeine Informationen zu unserem Mobile Login finden Sie hier

1 Implementierung

Benötigt wird das Android-Framework, dieses erhalten Sie von DocCheck.

Wichtig: Im letzten Schritt müssen wir die Login-Schnittstelle an Ihre App anpassen. Bitte teilen Sie uns hierfür die ID Ihres DocCheck Logins sowie Ihre AppID mit.

Für die Verwendung des DocCheck-Logins muss die aufrufende App das library project „DocCheckLogin“ einbinden. Ergänzend zur DocCheckLogin-Library liegt das Androidprojekt DocCheckLoginTest vor, um exemplarisch die Einbindung und den Aufruf des Logins zu verdeutlichen.

  • Einbinden des library projects in Eclipse
  • Erzeugen eines neuen Androidprojektes (Android 4.2)
  • Der Name des Packages, das die Activity enthält, dient der Identifizierung der App als eindeutige AppId.
  • Rechtsklick auf Projekt und „Properties“ auswählen
  • Unter dem Punkt Android das library project „DocCheckLogin“ hinzufügen
  • Die layout.xml Datei im Ordner res/layout darf nicht denselben Namen haben wie die Layoutdatei der library (dcview.xml)
  • Um die library verwenden zu können, muss die AndroidManifest.xml-Datei um folgende Einträge ergänzt werden (siehe Manifest-Datei im DCTest-Projekt):

<uses-sdk android:minSdkVersion=“8“ /> <uses-permission android:name=“android.permission.INTERNET“ /> <uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE“/> <activity android:name=“com.doccheck.login.android.DocCheckLogin“

               android:configChanges=“orientation|keyboard|keyboardHidden“/>

2 Definition des Interfaces

package com.doccheck.login.android.test; public interface DCTestActivityInterface {

public static final String loginId = „Your login id“; public static final String templateName = „s_ iphone“;

public static final int SHOW_DC_LOGIN = 1; public static final String CONST_LOGINID = „loginId“; public static final String CONST_TEMPLATENAME = „templateName“; public static final String CONST_LANGUAGE = „lang“;

}

3 Aufruf des library projects aus der App heraus

Intent i = new Intent(DocCheckLogin2TestActivity.this, DocCheckLogin.class);
i.putExtra(CONST_LOGINID, loginId);
i.putExtra(CONST_TEMPLATENAME, templateName);
startActivityForResult(i, SHOW_DC_LOGIN);

DocCheckLogin2TestActivity.this bezeichnet die aufrufende Activity und DocCheckLogin.class ist die Login-Activity der library. Um das Ergebnis des Logins auszuwerten muss die Methode onActivity-Result implementiert werden. Das Login-Ergebnis wird via data.getBooleanExtra(“LOGIN_RESULT“, false) ausgelesen. Zusätzliche Parameter (z.B. Anrede, Vorname, Name, etc.) werden über data.getSe rializableExtra(“URLPARAMS“) ausgelesen. Der Zugriff auf einzelne Parameter wird folgendermaßen realisiert: String anrede = paramsMap.get(„dc_anrede“).get(0).

Einer der zusätzlichen Parameter muss gegen Null geprüft werden, da ein valider Login diese Parameter nicht zwangsläufig beinhalten muss. Dies ist der Fall, wenn die Seite anonym betreten wird (siehe Beispielcode).

Folgende Parameter können ausgelesen werden: appid dc_anrede, dc_gender, dc_titel, dc_vorname, dc_name dc_strasse, dc_plz, dc_ort, dc_land dc_beruf, dc_fachgebiet, dc_email

public void onActivityResult(int requestCode, int resultCode, Intent data) { if ( requestCode == SHOW_DC_LOGIN ) {

if ( resultCode == RESULT_OK ) {
if ( data.getBooleanExtra(„LOGIN_RESULT“, false) == true ) {
// Login successful
Toast.makeText(getApplicationContext(),“Login: „ + data.

getBooleanExtra(„LOGIN_RESULT“, false) , Toast.LENGTH_LONG).show();


// Get url params via data.getStringExtra(„URLPARAMS“)
@SuppressWarnings(„unchecked“)

Map<String, List<String>> paramsMap = (Map<String, List<String>>) data.getSerializableExtra(„URLP ARAMS“);

if( paramsMap != null ) {

// Check one parameter for null as a valid login does not have to contain the dc_params (eg dc_ anrede)

if( paramsMap.get(„dc_anrede“) != null ) {
String anrede = paramsMap.get(„dc_anrede“).get(0);
String name = paramsMap.get(„dc_name“).get(0);

Toast.makeText(getApplicationContext(),“Login: „ + data.getBooleanExtra(„LOGIN_RESULT“, false) + „ „ + anrede + „ „ + name , Toast.LENGTH_LONG).show();

}
}
}
} else if ( resultCode == RESULT_CANCELED ) {
// Login not successful
String response = data.getStringExtra(„RESPONSE“);
Toast.makeText(getApplicationContext(),“Login: „ + data.

getBooleanExtra(„LOGIN_RESULT“, false) + „ „ + response , Toast.LENGTH_LONG).show();

}
}
}

4 Mehrsprachigkeit

Beispielimplementierung (siehe auch Beispielprojekt im Android-Framework):

public class DocCheckLogin2Activity extends Activity implements DCTestActivityInterface {

private String selectedLang;
@Override

public void onCreate(Bundle savedInstanceState) { ...

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this, R.array.languages_array, android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new
MyOnItemSelectedListener());
}


public class MyOnItemSelectedListener implements OnItemSelectedListener {

public void onItemSelected(AdapterView<?> parent, View
view, int pos, long id) {
selectedLang = parent.getItemAtPosition(pos).toString();
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}

Sprachkürzel zur strings.xml-Datei hinzufügen: <?xml version=“1.0encoding=“utf-8“?> <resources>

string name=“app_name“>DocCheckLogin2</string>
<string-array name=“languages_array“>
<item>de</item>
<item>com</item>
<item>es</item>
<item>fr</item>
<item>nl</item>
<item>it</item>
</string-array>

</resources>

Um diesen Artikel zu kommentieren, melde Dich bitte an.

Klicke hier, um einen neuen Artikel im DocCheck Flexikon anzulegen.
0 Wertungen (0 ø)

1.513 Aufrufe

Hast du eine allgemeine Frage?
Hast du eine Frage zum Inhalt?
Copyright ©2020 DocCheck Medical Services GmbH | zur mobilen Ansicht wechseln
DocCheck folgen: