2017-01-20 1 views
6

Die reaktive native Dokumentation dazu scheint mehr als unvollständig. Ich wurde im Anschluss an diese Führung, die mich nicht führen überall scheint:React Native - Headless JS Beispiel

https://facebook.github.io/react-native/releases/next/docs/headless-js-android.html#headless-js

Wo soll ich die .java-Datei setzen? Wie soll ich die Aufgabe starten?

+0

Ich löse dies auch im Moment. Hast du schon Fortschritte gemacht? Ich denke, dass Sie die Aufgabe mit dieser https://facebook.github.io/react-native/docs/appregistry.html#startheadlesstask –

+0

Nein. Ich habe ein natives Modul mit einem Hintergrund-Service für Android implementiert. Das war ziemlich geradlinig. Ich werde es irgendwann nochmal versuchen und hier meine Ergebnisse posten. – Alex

+0

Möchten Sie diesen Android-Dienst teilen? Weil ich etwas ähnliches gemacht habe: D –

Antwort

0

Fügen Sie die .java-Datei in Ihr Projekt ein. Z.B. /app/src/main/java/com/alex/app/service/

Wenn Sie einen bestimmten JavaScript-Code ausführen möchten, ohne eine ReactRootView anzuzeigen, können Sie Ihre benutzerdefinierte HeadlessJsTaskService verwenden.

Um die Aufgabe zu starten, rufen Sie einfach startService(new Intent(this, MyTaskService.class)); zum Beispiel von einem anderen Dienst oder sogar von einer Aktivität.

Hinweis: Ich habe die getTaskConfig() Methode des Tutorials, so erlaubt es leer Extras:

@Override 
@Nullable 
protected HeadlessJsTaskConfig getTaskConfig(Intent intent) { 
    Bundle extras = intent.getExtras(); 
    WritableMap data = extras != null ? Arguments.fromBundle(extras) : null; 
    return new HeadlessJsTaskConfig(
      "SomeTaskName", 
      data, 
      5000); 
} 

Oder zumindest verändern, so dass es nur leise nicht fehl, wenn keine Extras vorhanden sind.

Verwandte Themen