詳細については、以下をご覧ください。 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分散ロックの有効期限が切れたが、業務が完了していない場合はどうすればよいですか?
「サービスとしての」配信モデルの誕生以来、SaaS と PaaS は日常的な技術用語の一部となり、企...
budgetvm は 10 年以上運営されているアメリカの古いブランドで、多くの人に知られています。...
さて、K8s ストレージの重要なコンポーネントである Container Storage Inter...
JD.com への入り口が QQ インターフェースに表示される (TechWeb の写真) 【Tec...
1. クラウドネイティブテクノロジースタック次の図は、CNCF が公開したクラウド ネイティブ イン...
[[355702]]クラウド自動化のユースケースを採用すると、組織はクラウド プラットフォームをより...
外部リンク構築は、ウェブサイトの最適化にとって非常に重要です。新しいウェブサイトの場合、外部リンク構...
新浪科技興農は5月26日午後、共同購入分野でインターネット大手が引き起こした新たな競争により、共同購...
マーケティングは小さな問題ではありません。どの企業も売上を伸ばそうと努力し、マーケティング手法に注意...
世界の一般的な傾向は、長い統一期間の後には分裂が起こり、長い分裂期間の後には分裂が起こります。ストレ...
LFCVPS は LET でプロモーションを開始したばかりで、1G メモリを搭載した XEN がたっ...
含まれるウェブページの数がランキングに比例するかどうかは、私たちが長い間議論してきたテーマです。私た...
新華網、北京、1月10日:「5元で身分証明書の詳細を確認できる」というニュースが最近、多くの消費者に...
クラウド コンピューティングではさまざまな種類のサービスが利用できます。一般的なパブリック クラウド...
SEO の仕事は血と涙を伴う厳しい仕事だという人もいます。王世凡はこの意見に大いに賛同しており、中国...