詳細については、以下をご覧ください。 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分散ロックの有効期限が切れたが、業務が完了していない場合はどうすればよいですか?
個人ウェブマスターとして、私はこれまでたくさんのウェブサイトを構築してきました。業界ウェブサイト、ゲ...
世界的に有名なコンピュータールームであるzenlayerは、アジアで最も有名な金融センターと貨物配送...
今日、ますます多くの組織がビジネスをクラウドに移行しています。データ センターのライフサイクルの終わ...
多くのポータル、特にローカルポータルのホームページでは、百度の重みが6、Google PRが6となっ...
今日の複雑なメディア環境では、「コンテンツが王様」と「統合が勝つ」は互いに補完し合い、必要不可欠です...
過去 1 年間で、ウェブマスター サークルは突然、大手インターネット企業の注目の的となりました。クラ...
ウェブサイトのインクルードは、ウェブサイトの開発を制限するハサミのようなものです。検索エンジンのアル...
2012 年 6 月 28 日、これは多くのウェブマスターにとって決して忘れられない日だと思います。...
最近、検索エンジンが記事の独創性をどのように判断するかという疑問が提起されました。ウェブサイトのオリ...
クラウド コンピューティングの概念は、2006 年の Search Engine Conferenc...
現在、自社製品を宣伝するために自社のウェブサイトを立ち上げる企業が増えています。しかし、ウェブサイト...
一部の企業では、ERP にクラウド コンピューティング導入モデルを採用し始めています。しかし、ここ数...
Vultr は米国だけでなくカナダにも複数のデータセンターを持ち、カナダのトロントのデータセンターで...
現在の百度検索エンジンがヒットアルゴリズムを追加したかどうかはまだ完全に確認されておらず、百度がそれ...
潮が引いたときに初めて、誰が裸で泳いでいるかが分かります。 「何千もの共同購入戦争」を経験した後、共...