Ankündigung

Einklappen
Keine Ankündigung bisher.

Phonegap: Javascript Class funktioniert nach Build nicht mehr

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Phonegap: Javascript Class funktioniert nach Build nicht mehr

    Hallo Leute,
    es ist zwar nicht direkt eine Javascript Frage, dennoch hoffe ich dass vielleicht jemand weiß wo das Problem ist oder zumindest Ideen ansetzen kann um es zu lösen

    Ich habe eine App über Phonegap erstellt. Im Browser und im Phonegap Vorschau Programm auf dem Android Tablet läuft alles perfekt und ohne Fehlermeldungen.
    Sobald ich jedoch daraus eine App compile und installiere, funktioniert der Aufruf der Klasse nicht mehr wodurch sich nichts mehr rührt in der App.


    Der Code sieht stark abgespeckt so aus:


    index.html =========================================
    PHP-Code:
    <script type="text/javascript" src="cordova.js"></script>

    <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>

    <script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>

    <script type="text/javascript" src="js/es6-promise.js"></script>             <<<<------

    <script type="text/javascript" src="js/es6-promise.auto.js"></script>     <<<<----- habe ich zum testen angehängt, bringt jedoch nichts

    <script type="text/javascript" src="js/global.js"></script>

    <script type="text/javascript" src="js/main.js"></script>

    <script type="text/javascript" src="js/index.js"></script>

    <script type="text/javascript">

            app.initialize();

    </script> 

    index.js ==========================================
    PHP-Code:
    var app = {

        
    // Application Constructor

        
    initialize: function() {

            
    this.bindEvents();

        },

        
    // Bind Event Listeners

        //

        // Bind any events that are required on startup. Common events are:

        // 'load', 'deviceready', 'offline', and 'online'.

        
    bindEvents: function() {

            
    document.addEventListener('deviceready'this.onDeviceReadyfalse);

        },

        
    // deviceready Event Handler

        //

        // The scope of 'this' is the event. In order to call the 'receivedEvent'

        // function, we must explicitly call 'app.receivedEvent(...);'

        
    onDeviceReady: function() {

            
    app.receivedEvent('deviceready');

        },

        
    // Update DOM on a Received Event

        
    receivedEvent: function(id) {



    alert('test');              <<<<----------------- funktioniert!

    let eventListener = new main();

        }

    }; 

    main.js ======================================
    PHP-Code:
    class main extends global {



    /* .....................viel Code..................... */



    constructor(elem) {

    super(); // Aufruf global Class

    /* ............viel Code........... */



    alert('main Class loadet'); <<<----- funktioniert nicht! / allgemein der Code in der Klasse wird nicht ausgeführt



    // end constructor



    // end class 

    Ich habe auch bereits versucht die Datei .jshintrc in den Hauptordner der App und auch in den www Ordner zu setzen.

    Inhalt:
    {
    "esversion": 6
    }

    Hilft jedoch leider auch nicht.


    Solltet ihr noch Infos benötigen gebt mir einfach Bescheid.

    Bin jetzt leider mit meinem Latein am Ende und würde mich über jeden Denkanstoß freuen.


    Liebe Grüße

  • #2
    Ich habe jetzt einmal den Aufruf in der index.js Datei mit Try-Catch gekapselt. (Hätte ich auch früher drauf kommen können )

    PHP-Code:
    try {
        var 
    eventListener = new main();
        } catch(
    err) {
        
    alert(err);
        } 
    Dieser wirft mir dann folgendes aus: ReferenceError: $ is not defined

    Also scheint es wohl mit meinen eingebundenem jQuery zusammen zu hängen.
    Die Frage bleibt jedoch, warum funktioniert es in allen Testumgebungen, doch in der fertigen App nicht?

    Wird jQuery vielleicht nicht schnell genug geladen? Allerdings sorgt die index.js doch dafür das der Script erst nach vollständigem laden ausgeführt wird?
    Muss ich die jQuery Bibliotheken anders einbinden?

    Liebe Grüße

    Kommentar


    • #3
      Änder doch mal die reinfolge vom Einbinden,so das Jquery als erstes geladen wird
      Ich mach keine Rechtschreibfehler - ich schreib Freestyle!
      Erreichbar in mein Javascript-Forum und in Facebook-Chat

      Kommentar

      Lädt...
      X