-3

AngularJS と OnsenUI を使用して Cordova アプリケーションに取り組んでいます。ons.bootstrap() の呼び出しに関して公開されているドキュメントに問題があります。

具体的には、必要に応じて、Cordova で AngularJS アプリケーションを手動でブートストラップすることに慣れています。つまり、ブラウザーを使用している場合は DOM がロードされたとき、またはデバイスを使用している場合は、deviceready イベントが発生したときに呼び出しを行います。 angular.bootstrap(document, [ 'myApp' ]) に。

Onsen では、ons.bootstrap('myApp', [...dependencies...]) などの他のパラメーターの有無にかかわらず、ons.bootstrap への呼び出しが必要であることに気付きました。私はこれをいじりましたが、Onsen を注入できる唯一の方法は、そのブートストラップ呼び出しを使用することです。ただし、アプリケーションのファイルの他の場所では、まだ angular 定義を使用しています (例: angular.module('myApp', [...dependencies...]).config(...).run(... )) など。

私は疑わしい実装のいくつかを見つけましたが、これに関して決定的な答えをオンラインで見つけることができませんでした:

1) 初期化中に angular.bootstrap を呼び出すと、Onsen が読み込まれません

2) ons.bootstrap 呼び出しを使用すると、動作しているように見えますが、ブートストラップ呼び出し内で依存関係を繰り返し、Angular を使用してアプリケーション定義を行うことになります。この冗長性は私には悪いようです。

3) 両方の呼び出しを使用すると (予期しないことではありませんが)、isWebView() が既に定義されているというエラーが発生し、アプリケーションはどこにも行きません。

残念ながら、Onsen Web サイトのすべての例は、すべてのコード (HTML、JS など) が 1 つの場所に存在することを前提としており、Cordova を考慮していないようです。過去に温泉を使用したことがありますが、いくつかのバージョンが前で、古い注入方法は機能しなくなったようです.

私の質問は、Onsen、Angular、Cordova をブートストラップして使用する方法は何ですか? あるいは、Monacaを使わない良い例はありますか?

前もって感謝します。

4

2 に答える 2

1

もちろん、良い例はどこかにあります。基本的な Onsen UI テンプレートを試しましたか? それらは Onsen UI の「はじめに」ガイドで提供され、すべての質問に答えます: http://onsen.io/download.html#download-templates

要するに、Onsen UI は Monaca から独立しており、唯一の違いは Monaca をloader.js( index.htmlOnsenUI、AngularJS、Cordova などを含む) に含めるか、すべてのライブラリを個別に含めるかです。また、ons.bootstrap()オプションですので、必要に応じてご利用angular.module('app', ['onsen'])ください。

Cordova も使用できます。他の Cordova アプリケーションと同様に、Cordova ファイルを含めるだけで済みます。テンプレートで見ることができます。

基本的なテンプレートのように、これらすべてを備えた多くの例があります。その他の例:

温泉UIのGithub:https ://github.com/OnsenUI/OnsenUI/tree/master/demo

温泉UIブログ: http: //onsen.io/blog/developing-hybrid-mobile-apps-with-onsen-ui/

それが役に立てば幸い。

于 2015-05-08T02:45:24.323 に答える
0

なんらかの理由で、これを適切に初期化する唯一の方法は、Onsen ブートストラップ メソッドを使用してすべての依存関係を読み込むことです。Angular モジュールを返すのでons.bootstrap()、今はそれを使用します。

基本的に、Cordovadevicereadyイベントでは、次のように呼び出します。

angular.module('myApp.controllers', []);
angular.module('myApp.services', []);
ons.bootstrap('myApp', [ ...dependencies... ]);

はい、そこにはたくさんの例がありますが、Cordova を組み込み、実際のコードがどのように使用されるかについて合理的な組織的複製を実行する例は、さまざまなオブジェクトがさまざまなファイル内、複数のフォルダー内で定義されているため、非常に不足しています。確かに Google-Fu は必ずしも素晴らしいとは限りません。

ご回答ありがとうございます。

于 2015-05-08T13:10:36.867 に答える