2017-01-13 2 views
0

Ich portiere eine Web-App zu einer React-App in Android Studio. Ich benutze eine externe Bibliothek (diese: https://trackingjs.com/). Und da ich relativ neu in Android Studio und React bin, bin ich mir sicher, wie man es richtig macht. In meiner Webapp bin ich nur mit einem Skript-Tag enthalten.Wie Sie eine externe Bibliothek in ein reaktives natives Projekt in Android Studio einbinden?

Ich habe die Bibliothek in meinen Projektordner gespeichert, in demselben Verzeichnis wie meine index.android.js Datei. Ich würde es vorziehen, den Code in tracking.js in keiner Weise zu ändern. Ich bin mir nicht sicher, wie ich vorgehen soll. Das muss ein häufiges Problem sein, aber ich hatte wenig Glück, etwas zu finden, das funktioniert.

+0

Tracking.js hat ein Knotenpaket ("tracking"). –

Antwort

1

Basierend auf @ liminal18 Kommentare, das ist was für mich gearbeitet, mit Tracking.js:

$ npm install tracking 

auf der Kommandozeile, dann in index.android.js

import { 
Tracking 
} from 'tracking'; 

Dies war nur um die Bibliothek ohne Fehler zu bekommen. Da Tracking.js webbasiert ist, kann es Probleme geben, die es tatsächlich verwenden, aber das oben genannte löste das Problem der Aufnahme einer externen Bibliothek.

+1

könnte --save enthalten, damit npm weiß, in welchem ​​Abschnitt es eingefügt werden soll. Hat es funktioniert? Ich könnte es in Erwägung ziehen Wenn ja, – liminal18

+0

Ja, das hat funktioniert, ich muss die Bibliothek noch modifizieren, damit sie besser mit React-native funktioniert, da Tracking elementbasiert ist. Aber das ist eine Hürde. –

+0

Ich bin wirklich beeindruckt, dass du so weit gekommen bist Ich habe gerade die Portierung von XML-Parsern für RSS-Feeds aufgegeben und mich entschieden, einen Dienst zu verwenden. Wenn Sie es portieren, lassen Sie es mich wissen und vergewissern Sie sich, dass Sie das Paket veröffentlichen. – liminal18

1

Wenn es von npm verfügbar ist, können Sie tun npm package --save installieren und dann importieren verwenden Paket von ‚packages.js‘

Bitte beachten nativer reagieren, ist nicht ganz Javascript und einige Browser spezifische Funktionen Mit anderen Worten, es ist nicht möglich, dass das Plugin, das Sie verwenden, nicht in der nativen Version funktioniert.

Btw keine Notwendigkeit für android Studio außer dem Starten der emulierten Gerät zu reagieren native in. Sie sollten in der Lage sein zu reagieren native run-android und vorausgesetzt, Sie das emulierte Gerät richtig eingerichtet wird es den Paket-Manager starten und installieren Ihre App darauf und dann beim Speichern aktualisieren. Verwenden Sie den reaktiven nativen CLI?

Btw in Ihrem Web-App sollten Sie in der Lage sein, es Tracking = mit einschließen lassen erfordern („tracking.js“) oder den Import Stil oben. Wenn Sie es tun, sollte es in Ihre main.js Datei verkettet werden und dann minimiert werden, die helfen könnte. Lieber einen Download als mehrere.

+0

Ich benutze sowohl die Reaktion native CLI und Android Studio. Ich habe Probleme mit Android Studio allein (obwohl ich denke, ich benutze es als ein verklärter Texteditor). Ich denke, ich habe in meinem Projekt etwas schrecklich falsch gemacht, als jedes Mal, wenn ich AS öffne und meine js-Datei bearbeite, heißt es, dass es nicht Teil des Projekts ist. Jedes Mal, wenn ich den Code testen möchte, muss ich den Code mit den Gradle-Dateien resyncieren, was auch nicht richtig erscheint. Und vergiss iOS. Ich kann nichts in Xcode überhaupt arbeiten. Im Grunde leide ich nur an einem schweren Fall von n00bitis. Zum Glück ist das nur ein Nebenprojekt. –

+1

React Native ist schwer. Ich bekomme immer rote Bildschirme, manchmal nur durch die Installation neuer npm libs beim Laufen. Nimmt etwas Zeit. Bleiben Sie bei den Tutorials usw., egal, ob es mit required oder read importiert werden soll, also sehen Sie, ob Sie das über eine npm-Installation verwalten können und dann benötigen. – liminal18

+0

Wo in der Ordnerstruktur soll das Knotenmodul installiert sein? Ich habe versucht, die oberste Ebene (theoretisch beide iOS und Android könnte es sehen), aber ich bin mir nicht sicher, ob das korrekt ist. Wo würde ich auch packages.js finden (oder erstellen)? –

Verwandte Themen