詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したHongmengテクノロジーコミュニティ https://harmonyos..com 序文JS には分散機能もあります。今回は、JSの分散プルアップと分散マイグレーションを2つの小さなプロジェクトで紹介します♪(∇*) 文章これは公式サイトから見つけたFAライフサイクルにおける分散APIの位置づけ図です。図の onStartContinuation()、onSaveData(OBJECT)、onRestoreData(OBJECT)、onCompleteContinuation(code) はすべて分散機能インターフェースです。 プロジェクトに対して同じ操作を実行します:1. DevEco Studio 2.1リリースをインストールして構成する DevEco Studio 2.1 リリースのダウンロード、DevEco Studio 2.1 リリースのインストール 2. 空のJava電話アプリケーションを作成する DevEco Studio が正常にダウンロードされインストールされたら、DevEco Studio を開き、左上隅の [ファイル] をクリックし、[新規] をクリックして [新しいプロジェクト] を選択し、[空の機能 (Java)] オプションを選択して、[次へ] ボタンをクリックします。 分散プルアップの場合、ファイルにDistributrd1という名前を付けます。分散移行の場合、ファイルに Distributrd2 という名前を付け(ファイル名に中国語や特殊文字を含めることはできません。含めるとプロジェクト ファイルが正常に作成されません)、保存パスを選択し、API5 を選択し、デバイスとして Phone をチェックして、最後に [完了] ボタンをクリックします。 3. 準備 アプリケーション上部のタブ バーを削除するには、entry>src>main>config.json ファイルの下部にある "launchType": "standard" の後に次のコードを追加します。 config.json コードの一部:
4. 権限を追加する config.json に権限を追加します。
MainAbility.java で権限を動的に適用します。
分散プルアップレンダリング1. インターフェースレイアウトを実装する index.hml に次のコードを記述します。 クラス セレクタ名が btn である 2 つのボタン コンポーネントを追加し、それぞれにクリック イベントを追加します。ボタン上のテキストはそれぞれ「Add 1」と「Pull up」になります。
index.css に次のコードを記述します。 クラス セレクター ボタンを追加し、その属性値を変更します。
2. 分散プルアップを実装する index.js に次のコードを記述します。 分散起動を使用すると、ローカルまたはリモートの FA を起動し、起動時にパラメータを渡すことができます。ボタン クリック イベント distribution() を追加して、コールバック結果なしで FeatureAbility.startAbility(OBJECT) メソッドを通じて FA を開始し、リモートまたはローカルの FA を明示的に開始できるようにします。 OBJECT は RequestParams 型のパラメータで、必須の bundleName (起動するパッケージ名。abilityName と一緒に使用する必要があります。大文字と小文字が区別されます)、abilityName (起動するアビリティ名。大文字と小文字が区別されます)、オプションの entity (呼び出す FA が属するエンティティ リスト。未記入の場合は、デフォルトですべてのエンティティ リストが検索されます。action と一緒に使用する必要があります)、action (パッケージ名とアビリティ名を指定せずに、action 値を渡すことで、Operation の他のプロパティに従ってアプリケーションを起動できます)、deviceType (デフォルト 0: ローカル デバイスとリモート デバイスから起動する FA を選択します。1: ローカル デバイスから FA を起動します。条件を満たす FA が複数ある場合は、ユーザーがデバイスを選択するためのポップアップ ボックスが表示されます)、data (相手に渡すパラメータを指定します。シリアル化する必要があります)、flag (FA をプルアップする際の設定スイッチ。インストールするかどうかなど)、url (プルアップ時に開くページの URL を指定します) が含まれます。 FA。デフォルトではホームページが直接開きます。
3. データ転送による分散プルアップを実装する グローバル変数 sum を定義し、0 に初期化します。ボタン クリック イベント plus() を追加して、plus 1 関数を実装します。 FeatureAbility.startAbility(OBJECT) にパラメータデータを追加し、sum をインスタンス化します。 data に設定されているすべてのフィールドはピア FA の this の下で直接取得できるため、ライフサイクル イベント onInit() で this.number を通じて値が取得されます。
分散移行レンダリング1. インターフェースレイアウトを実装する Distributed2 という空の JS Phone アプリケーションを作成します。 index.hml に次のコードを記述します。 クラス セレクタ名が btn である 2 つのボタン コンポーネントを追加し、それぞれにクリック イベントを追加します。ボタン上のテキストはそれぞれ「Add 1」と「Migrate」になります。
index.css に次のコードを記述します。 クラス セレクター ボタンを追加し、その属性値を変更します。
2. 分散移行の実装 index.js に次のコードを記述します。 分散移行では、アクティブな移行インターフェースと一連のページ ライフサイクル コールバックが提供され、指定されたデバイスへのローカル サービスのシームレスな移行がサポートされます。ボタン クリック イベント distribution() を追加して、FeatureAbility.continueAbility() メソッドを通じて FA 移行をアクティブに実行します。 このうち、onStartContinuation() は、FA が移行を開始するときのコールバックです。このコールバックでは、アプリケーションは現在の状態に基づいて移行するかどうかを決定できます。戻り値はブール型です。 true は移行が許可されることを意味し、false は移行が許可されないことを意味します。 onSaveData(OBJECT) はステータスデータを保存するためのコールバックです。開発者は、ターゲット デバイスに移行するデータをパラメーター オブジェクトに入力する必要があります。パラメータはシリアル化できるカスタム データです。 onRestoreData(OBJECT) は、移行を開始するときに onSaveData メソッドによって保存されたデータを復元するためのコールバックです。アプリケーション状態のオブジェクトを復元するために使用されます。データと構造は onSaveData によって決定されます。 onCompleteContinuation(code) は移行完了のコールバックであり、呼び出し側でトリガーされ、ターゲットデバイスへのアプリケーション移行の結果を示します。パラメータは移行の結果です。 0: 成功、-1: 失敗。
3. データ転送による分散移行の実装 番号が 0 のシリアル化された continueAbilityData を定義します。ボタン クリック イベント plus() を追加して、plus 1 関数を実装します。 onSaveData(saveData) 関数で、移行のためにシリアル化された continueAbilityData を savedData に保存します。 onRestoreData(restoreData) 関数で移行されたデータを表示します。
最後にこのプロジェクトは長期間にわたって更新されます。私たちも、このプロジェクトをご覧になっている皆様も、Hongmengとともに成長し、強くなっていくことを願っています。来年3月には深セン大学のキャンパス内のカポックの花が満開になる予定だ。その時までに、洪蒙は良くなるでしょう。あなたと私がこの花の開花を共有できれば幸いです。 記事に関連する添付ファイルをダウンロードするには、以下のリンクをクリックしてください。 配布1.zip 配布2.zip 詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したHongmengテクノロジーコミュニティ https://harmonyos..com |
<<: Alibaba第2回インタビュー:Redis分散ロックの有効期限が切れたが、業務が完了していない場合はどうすればよいですか?
また、マルチクラウドは組織の IT チームが直面しているすべての問題に対する解決策ではないことも理解...
クラウド プロバイダーのロックインを回避することで、企業は競争力のある価格設定の機会を活用し、クラウ...
Dataplugs(中国語名:Multi-Line)は、伝統的な新年を記念して、ユーザーに新年の祝福...
テンセントテクノロジーニュース(劉学通)北京時間9月7日、海外メディアの報道によると、テレジオグラフ...
しかし、なぜ販売者はSEO を行うのでしょうか?次の一連のデータが答えを与えてくれるかもしれません↓...
業界ウェブサイトのさまざまなプロモーション方法の中でも、電子メールによるプロモーションは欠かせない方...
[[376370]] [51CTO.com クイック翻訳] VirtualBox から KVM ハイ...
この記事では、ハイブリッド クラウド シナリオの難しさや重要なポイント、およびクラウド プラットフォ...
onetechcloudは現在、香港CN2回線、ロサンゼルス往復CN2 GIA回線、ロサンゼルス往路...
2017 年 10 月 24 日 量子コンピュータの理論的なクラウド処理能力は従来のスーパーコンピュ...
Godaddy - 初回注文で 65% オフの割引コード、6 月 25 日に期限切れになります!左の...
Vultr は、サイバーマンデーに新規ユーザーに直接 100 ドルを付与すると発表しました。これは ...
公開アカウントへのトラフィックを誘導し、フォロワーを増やすという問題について、多くの友人は、自分は仏...
昨年6月28日のビッグKステーション以降の継続的な検索エンジンアルゴリズムのアップグレードを振り返る...
昨日、ネットワーク環境に問題が発生しました。ローカル仮想マシンで構築されたKubernetes環境に...