Ich muss hier Maps Javascript API-Bibliothek in meiner Anwendung verwenden. Es funktioniert gut, wenn ich die App eigenständig benutze (seit ich sie in index.html einfüge). Wenn ich es jedoch auf der HANA Cloud Platform bereitstelle und versuche, es in der HCP Portal-Site auszuführen, schlägt es fehl. Ich weiß, dass ich die Bibliotheksdateien in Component.js laden muss, da index.html nicht verwendet wird. Mein Problem ist, dass ich 4 verschiedene js-Dateien und ein Stylesheet laden muss, bevor ich anfange, die Karte zu zeichnen. Ich benutze jQuery.sap.includeScript()
und jQuery.sap.includeStyleSheet()
Funktionen, um dies zu tun, aber meine rootview onInit und onAfterRendering() wird aufgerufen, bevor die Bibliothek Dateien geladen werden (siehe ihren Status als "ausstehend" in der Registerkarte Netzwerke in Chrom).Laden von Bibliotheken von Drittanbietern in SAPUI5
folgte ich der unten Beitrag:
UsingjQuery.sap.includeScript().then() in HCP Firori Launchpad
Wie kann ich laden/initialisieren sind der Ansicht, erst nachdem die Bibliotheksdateien geladen.
Ist es richtig, all dies in component.js zu tun. Spielt manifest.json eine Rolle dabei.
Jedes Beispiel wird hilfreich sein. Vielen Dank im Voraus.
My Component init-Code ist wie folgt:
init: function() {
// call the base component's init function
UIComponent.prototype.init.apply(this, arguments);
var that = this;
//Load the here maps library
jQuery.sap.includeScript("https://js.api.here.com/v3/3.0/mapsjs-core.js", "hereMapsCore", $.proxy(function(succ) {
jQuery.sap.includeScript("https://js.api.here.com/v3/3.0/mapsjs-service.js", "hereMapsService", $.proxy(function(succ) {
jQuery.sap.includeScript("https://js.api.here.com/v3/3.0/mapsjs-ui.js", "hereMapsUi", $.proxy(function(succ) {
jQuery.sap.includeScript("https://js.api.here.com/v3/3.0/mapsjs-mapevents.js", "heremapsEvent", $.proxy(function(succ) {
jQuery.sap.includeStyleSheet("https://js.api.here.com/v3/3.0/mapsjs-ui.css", "hereMapscss", $.proxy(function() {
// UIComponent.prototype.init.apply(this, arguments);
// set the device model
this.setModel(models.createDeviceModel(), "device");
var a = this;
}, this));
}, this), function(oErr) {
MessageBox.alert("Map File not loaded");
});
}, this), function(oErr) {
MessageBox.alert("Map File not loaded");
});
}, this), function(oErr) {
MessageBox.alert("Map File not loaded");
});
}, this), function(oErr) {
MessageBox.alert("Map File not loaded");
});
}