0

直接更新が共通のディレクトリ構造にあるすべてのものを更新するとどうなるか誰にもわかりません。複数のアプリに同じコード ベースを使用しましたが、唯一の変更は、アプリケーションに動作方法を指示する js ファイル内の特定の設定です。直接更新機能から安全なjsファイルを置くことができるディレクトリはありますか?

IBM の Web サイトで特定の情報を見つけることができません。

4

3 に答える 3

3

同様のヘルプを探している人を混乱させないように、どの用語を使用しているかに注意する必要があると思います。

環境は、使用している OS に固有です。iOS、Blackberry、Android などの環境。

スキンは環境に基づいており、すべてのプラットフォームに共通ではありません。スキンを作成するときは、実行する環境を選択する必要があります。

そのため、一部を修正するために、直接更新により、対象環境のすべてのスキン リソースが更新されます。

例: Android および iOS バージョンのアプリがあります。

スキンを作成するときは、基本的にパラメーターに反応するタイプのデザインを作成しています。たとえば、2.3 と 4.2 の Android OS を使用している場合、両方のルック アンド フィールを設定できます。ただし、これらは単一の Web リソース ベースを使用します。APK は両方のバージョンのアプリで同じで (デフォルト)、2 つの利用可能なスキンがあります。IBM Worklight の「ランタイム スキニング」(名前の由来) を使用する実行、OS のパラメーター チェックを通過し、Web コードをオーバーライドするスキンをロードします。

技術的には、すべての Web コードをオーバーライドして、両方のスキンで完全に異なるものにすることもできますが、それはかさばり、非効率的です。

直接更新すると、共通のフォルダー/環境ではなく、その特定の環境(両方のスキンを含む) のすべてのリソースが更新されます。

そのため、更新された Android (両方のスキン) は Web リソースを更新し (android wlapp をデプロイした場合)、iOS バージョンは同じままです。

ビルド後の Android プロジェクト (ネイティブ -> アセット -> www -> デフォルトまたはスキン) を見ると、共通環境によって生成された共有 Web リソースを見つけることができます。ただし、それは新しいビルドを行うたびにのみそこに配置されます。

ブラウザ テスト 写真では、左側に両方のスキン用にビルドされた古いバージョンの Android があります。右側は、 common.wlappのみをデプロイした後の新しい共通リソースのプレビューです。したがって、それらが分離されていることがわかります。

長くなって申し訳ありませんが、徹底的にやろうと思いました。

元の質問に答えるために、ストアのすべてのパラメーターをユーザー入力またはセットアップからロードすることを考えましたか? 3 つの異なるストアに接続しようとしている場合は、異なるバックエンドまたは特定のアダプターにアクセスする設定コントロール用のフォームを作成します。設定したパラメータに応じてロードする 3 つの異なる config.js を作成することもできます。もう 1 つのオプションは、ストアに固有のさまざまなバージョンのアプリを設定することです。

例。バージョン 1.11、1.12、1.13 は、ストア 1、2、および 3 の同じアプリの 3 つのバージョンにすることができます。それらは修正および変更でき、3 セットの Web リソースを持ちます。更新が必要な場合は、バージョン 1.21、1.22、1.23 にジャンプしてください。ちょっとした回避策のように思えますが、同じアプリの 3 つのバージョンを 1 つのアプリケーション カテゴリに収めるには、これが最善の策かもしれません。(3 つのストアの変更用に 3 つの config.js タイプを保持します)。

于 2013-03-07T21:22:37.937 に答える
2

私の知る限り、ダイレクト アップデートは、使用しているスキンのすべての Web リソース (html、css、js) を更新します。しかし、私はその専門家ではありません。

Android および iOS アプリケーションのみをサポートしていて、設定を保存する方法が必要な場合は、JSONStore をお勧めします。それ以外の場合は、Cordova StorageLocal StorageまたはIndexedDBを調べてください。

呼び出された JSONStore コレクションを使用するとsettings、アプリのディレクトリ内のディスクにデータを保存できます。destroyなどの削除メソッドのいずれかを呼び出すまで、またはアプリケーションがアンインストールされるまで存続します。コレクションを Worklight アダプターにリンクして、サーバーとの間でデータをプル/プッシュする方法もあります。詳細については、以下のリンクを参照してください。

唯一の変更は、js 内の特定の設定です

設定のコレクションを作成します。

var options = {};
options.onSuccess = function () {
    //... what to do after init finished
};
options.onFailure = function () {
    //... what to do if init fails
}
var settings = WL.JSONStore.initCollection('settings',
    {background: 'string', itemsPerPage: 'number'}, options);

initCollection onSuccess が呼び出された後、新しい設定を追加できます。

settings.add({background: 'red', itemsPerPage: 20}, options);

initCollection onSuccess が呼び出された後に保存された設定を見つけることができます。

settings.findAll({onSuccess: function (results) {
    console.log(JSON.stringify(results));
}});

JSONStore の詳細については、入門モジュールを参照してください。モジュールを参照してください: 7.9、7.10、7.11、7.12。IBM InfoCenterの API ドキュメント内に詳細情報があります。上記のメソッドは、 initCollectionadd、およびfindAllです。

于 2013-03-04T02:10:08.817 に答える
0

バージョン 5.0.3 以降、直接更新ではすべての Web リソースが更新されるわけではなく、使用しているスキンのみが更新されると思います。

あなたはスキンデフとスキンスキン2を持っていると言い、あなたはデフにいます

  1. サーバーでdefを変更します-> defのみの直接更新を取得します
  2. サーバー上のskin2に変更を加えます->直接の更新はありません。

あなたはskin2にいます:

  1. サーバー上のskin2を変更 -> skin2のみを直接更新
    • skin2 にも存在する def javascript を変更し (したがって、最終結果は def+skin2 連結になります)、skin2 のみを更新します。
    • defを変更し、画像だけに変更します(アプリケーション記述子からのpic拡張もチェックします: ")->直接更新なし

それが直接更新の仕組みです。

問題の詳細についても教えてください。js ファイルを使用しているようですが、どこで変更しますか? 何をしようとしているのかわからないので、より良い(単純化された)実際の例を挙げてください。

于 2013-03-05T08:38:45.600 に答える