詳細については、以下をご覧ください。 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分散ロックの有効期限が切れたが、業務が完了していない場合はどうすればよいですか?
2021年4月26日、第4回デジタル中国建設サミットの機会に、中国電子クラウドは福州で「未来のクラウ...
A5ウェブマスターネットワーク(www.admin5.com)は3月27日、近年、YoukuとTud...
インターネットで話題となった新しい「分散ルーティング システム」の登場により、WiFi ワイヤレス ...
昨今、キーワードの使い方は多様化していますが、最終的な目標はやはりトラフィックです。人気映画の検索イ...
[[317466]]仮想化技術は、データセンターに不可欠な技術の 1 つになっています。では、仮想化...
過去2日間、 DingTalkとWeChat for Enterpriseは密かに競争しており、それ...
1. 広告をクリックするために特別に設計された自動クリック プログラムまたはアプリケーションを使用す...
タレントウェブサイトの運営については、友人によって意見が異なります。他の人が私たちにどのように経験を...
[[333298]]現在、チップのパフォーマンスの向上は限られているため、分散トレーニングは超大規模...
近年、疫病やモバイルインターネットの影響により、消費市場は数え切れないほど多くの消費者の消費行動を変...
ウェブサイトを最適化するには、多くの詳細な作業が必要であることは誰もが知っています。しかし、最適化に...
現代の企業はインターネットなしでは成り立ちません。オンライン マーケティングは SEO 最適化に基づ...
オープン アーキテクチャに基づき、Microsoft と連携した Dell のハイブリッド クラウド...
最近、エッジコンピューティングに対する期待が高まっています。この業界では、「エッジがクラウドを飲み込...
AI によるダンス合成にはさまざまな方法がありますが、実際に実装して実際の制作に使用できる成熟したシ...