2016-09-08 8 views
0

私のアプリケーションには、ここにJavascript APIライブラリのマップを使用する必要があります。私がスタンドアローンのアプリケーションを実行するとうまく動作します(index.htmlにインクルードしているので)。しかし、HANA Cloud Platformに展開してHCP Portalサイト内で実行しようとすると失敗します。 index.htmlが使用されていないので、Component.jsにライブラリファイルをロードする必要があることは知っています。私の問題は、マップを描画する前に4つの異なるjsファイルと1つのスタイルシートをロードする必要があることです。私はjQuery.sap.includeScript()jQuery.sap.includeStyleSheet()の機能を使用していますが、ライブラリファイルがロードされる前に私のrootviewのonInitとonAfterRendering()が呼ばれています(クロムのネットワークタブではステータスが "保留中"となっています)。私はロード/ライブラリファイルがロードされた後にのみビューを初期化するにはどうすればよいサードパーティのライブラリをSAPUI5にロード

UsingjQuery.sap.includeScript().then() in HCP Firori Launchpad

は、私は以下の記事を追いました。

このすべてをcomponent.jsで行うのは正しいですか? manifest.jsonはこれを達成するために何らかの役割を果たしますか?

例が参考になります。 ありがとうございました。

マイコンポーネントのinitのコードは以下の通りです:

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"); 
      }); 
     } 

答えて

0

あなたはテーブル12にDeveloper Guideで説明したようにコンポーネント記述子manifest.jsonに必要なリソースを追加することができます。コンポーネントに

相対URL 、埋め込みの場合embeddedByを考慮に入れて、js(JavaScript)と、とを指定するためにアプリが必要とするリソースcssを指しているCSS用の(オプション)。 JavaScriptファイルは、要求メカニズムによってロードされます。 CSSファイルはHTMLページの先頭にリンクタグとして追加されます。 manifest.jsonファイルの場所に関連してリソースはです。

絶対URIに問題がある場合は、コンポーネントの下のUI5プロジェクトにJavaScriptファイルとCSSファイルを保存し、相対パスを使用できます。

例:sap.ui5/resourcesセクションでmanifest.jsonをにこれを追加します。

"sap.ui5": { 
    "resources":{ 
    "js": [ 
     { 
     "uri": "lib/otherScript.js" 
     }, 
     { 
     "uri": "https://js.api.here.com/v3/3.0/mapsjs-core.js" 
     } 
    ], 
    "css": [ 
     { 
     "id": "myCustomCSS", 
     "uri": "css/style.css" 
     }, 
     { 
     "uri": "https://js.api.here.com/v3/3.0/mapsjs-ui.css" 
     } 
    ] 
    } 
} 
関連する問題