デバイス間の移行と分散ファイル機能に基づく DistributedMail 分析

デバイス間の移行と分散ファイル機能に基づく DistributedMail 分析

[[417428]]

詳細については、以下をご覧ください。

51CTOとHuaweiが共同で構築したHongmengテクノロジーコミュニティ

https://harmonyos..com

1. 分散メールのデモンストレーション効果

(I)プロジェクト効果表示

(II) マルチデバイスデバッグのヒント

複数のデバイスをデバッグする場合は、[ツール] の [スーパー デバイス] を選択してください。単一のデバイスを選択して分散操作を実行すると、次のように表示されます。

複数のデバイスを選択した後は、必ず両方のデバイスにアプリを展開してください。 1 つだけ展開した場合は機能しません。

(III)ページ表示の問題を解決する

元のファイルのレイアウトにより、他のデバイスに移行したページのレイアウトに問題が生じる可能性があることに注意してください。リモートシミュレーター上では、他のデバイスに移行したページのOKボタンが見えなくなっている状態が表示されます。最初は本当に混乱しました。

次のように:

秦の120の峠はついに楚のものとなった!長い間探し続けた結果、ようやく理解して解決できました。

携帯電話のショートカットコントロールバーがボタンを覆います

1. 問題を分析する:

  • dialog_layout_device.xml レイアウトに問題があり、次のコンポーネントが排除されている可能性があります。
  • DeviceSelectDialog.class で作成された ListDialog の設定に問題があるか、
  • または、ボタンが携帯電話のショートカット コントロール バーに隠れています。

2. dialog_layout_device.xml レイアウトを調整し、このレイアウトが方向性のあるレイアウトであり、高さが重みによって割り当てられていることを確認します。このうち、ListContainer の ohos:weight="1" なので、この行を削除し、高さを 150vp に設定(合計 300vp、他のデバイスに移行した Text の 50vp、最終的な水平方向のコンテナー(確認、プレースホルダー、キャンセルの 3 つのコンポーネント)が合計 100vp を占める)すると、結果は次のようになります。


3. 問題がListDialogポップアップウィンドウにあると判断された場合は、DeviceSelectDialog.classに戻って分析します。

(1)全体構造を分析する(ここでは詳しく述べませんが、プロジェクト全体を後で分析します)

(2)デバッグ用の変数を制御することで、ポップアップウィンドウを画面の中央に配置するとキャンセルボタンと確認ボタンが表示されることが分かりました。

最終的に、ボタンが携帯電話のショートカット コントロール バーによって覆われていることが判明しました。最終的な解決策は、ListContainer が移行可能なデバイスを適切に表示し、ポップアップ ウィンドウがより印象的になるようにすることでした。 dialog_layout_device.xml では、レイアウト全体の高さのみが ohos:height="400vp" に変更され、配置が中央に変更されました。 LayoutAlignment.CENTER を設定します。

それでもポップアップ ウィンドウを下部に配置し、[キャンセル] ボタンと [確認] ボタンを表示する場合は、setAlignment(LayoutAlignment.BOTTOM); を使用します。モバイル フォンのショートカット コントロール バー用に、レイアウト テキストの下に 100 vp 以上のスペースを残します。 (具体的な操作は、ListContainerのohos:weight="1"を削除して、レイアウト全体の高さを比率ではなく値に応じて視覚化することです)

最終結果:

2. プロジェクトカタログ分析

3. 許可申請

当然のことながら、このアプリケーションを展開すると、2 つの権限ポップアップが表示されます。

  • 1つ目は画像やメディアへのアクセス権です
  • 2つ目は、マルチデバイスコラボレーションの使用許可です

しかし実際には、このアプリケーションは次の 6 つの権限を申請します。

MainAbility の onStart() 関数内:

<a name="permission"></a>「権限リストにはなぜ権限が 3 つしかないのか」という疑問について考えたことはありますか?他の 3 つの権限についてはどうでしょうか?ここでは権限が 3 つあるのに、プロジェクトのデモンストレーション中に確認ポップアップ ボックスが 2 つ表示されるのはなぜですか?理由:

機密権限のアプリケーションでは、動的アプリケーション プロセスに従ってユーザーからの承認が必要です。非機密権限には、ユーザーの機密データや危険な操作は含まれません。これらは config.json で宣言するだけで、アプリケーションのインストール後に承認されます。他の 3 つは機密性のない権限です。

アプリは動的に権限を申請し、最初は 2 つの権限のみを要求しました。当初は、ローカル画像やメディアを変更するための別の許可は申請されていませんでした。

  1. // 画像とメディアにアクセスする
  2. 「ohos.permission.READ_USER_STORAGE」
  3. //異なるデバイス間でのデータ交換を許可します。
  4. 「ohos.permission.DISTRIBUTED_DATASYNC」  

許可申請用のコードサンプルプロジェクト(許可)があります。今後は、権限に関するより包括的な調査と、プロジェクトのより包括的な分析を実施します。

分散デバイスを取得する、つまりMailEditSliceのsetClickActionメソッド

4. インターフェース分析(レイアウトに重点を置く)

1. インターフェースを分析すると、レイアウト XML ファイルが赤でマークされており、コード サンプル プロジェクトが SDK バージョン 2.0 であることがわかり、問題があることがわかりました。以下は一例であり、他の例がすべてではありません <a name="バージョン"></a>

2. string.jsonは文字列<a name="string"></a>の保存には使用されません。

3. moudle_mail_edit.xml のレイアウト分析を実行します。レイアウトコンポーネントは他にほとんどないので、詳細には触れません。

5. ページコーミング(スライスコーミング)

1. MailEditSlice を開き、final の追加など、いくつかの不規則性を見つけます。

2. 分析する(デバイス間でのページ移行の詳細については、以前の記事「PageAbility 包括的分析」を参照してください)

6. メール本文データ、メール初期化、メールデータ処理

  • bean/MailDataBean.java、メール本文データを表すために使用される
  • MailDataBean.javaはメールデータをカプセル化し、Paramページ間で送信される情報を処理します。
  • MailEditSliceページでは、メールの内容、つまり上記のスライスのfillview部分を初期化します。
  • onSaveData()とonRestoreData()メソッドは転送と復元に使用されます

前処理:

7. 問題の概要

1. (未解決) 公式ドキュメントに記載されている画像のように、ポップアップ ウィンドウが電話のショートカット バーによってブロックされるのを防ぐ方法。

2. (解決済み) このアプリは 6 つの権限を申請しましたが、MainAbility の requestPermission() には 3 つしかなく、プロジェクト デモでは最初に権限要求ポップアップが 2 つしかありませんでした。著者は記事中の許可申請部分を解決しました。

3. (解決済み) バージョンの問題により (コードサンプルプロジェクトは SDK バージョン 2.0 なので問題があります)、

4. (解決済み) string.json で文字列を保存しない

詳細については、以下をご覧ください。

51CTOとHuaweiが共同で構築したHongmengテクノロジーコミュニティ

https://harmonyos..com

<<:  クラウドで災害復旧を実行する 5 つの効果的な方法

>>:  Xinchuang Cloudについてどれくらい知っていますか?

推薦する

locvpsはどうですか?香港荃湾データセンター VPS レビュー

locvpsはどうですか?香港にある locvps の荃湾データセンターはどうですか? locvps...

2014 年のインターネット クリーンアップ キャンペーンはビデオ番組にとって「壊滅的な災害」となるでしょうか?ビデオ番組の変革への道は困難

【ビデオ番組では、ファンの注目を集めるために、キャスターは必然的に視聴者を集めるための違法な活動に従...

アフィリエイトマーケティングで毎日15点以上の商品を販売するためのヒント

アフィリエイトマーケティングは、多くのタオバオ販売者が重視する販売モデルであり、昨年の人気商品が非常...

domain.com tvドメイン名 初年度2ドル

domain.com では、TV ドメイン名のプロモーションを実施しています。初年度は 2 ドルです...

AWS、Azure、GCP: クラウド サービスの詳細な比較

[[435078]]デジタル革命によってもたらされたクラウド コンピューティングの第 3 の波は、私...

レトゥ・トラベル・ネットワークは暴力的なレイオフで非難された。経営陣と従業員は意見が一致しない

最近、Letu Travel NetworkはWeiboやフォーラムからのさまざまな否定的な世論によ...

ハイブリッドクラウドは世界中で広く使用されていますが、中国ではまだ初期段階にあります。

最近では、ハイブリッドクラウドやマルチクラウド環境が主流になっています。では、アプリケーション実装の...

アリババの新しい時系列予測モデルに関する論文がICML2022に選出されました

一定期間の履歴データがあれば、AI は天候の変化、グリッド負荷需要、交通渋滞を正確に予測できるでしょ...

発注から制作までのウェブサイト最適化のコミュニケーション問題

1. ウェブサイトで注文する1.1. ウェブサイトが最適化されているかどうかを分析します。ウェブサイ...

boltvm-$2.25/1g メモリ/100g ハードディスク/1T トラフィック/G ポート/ロサンゼルス

DediCube LLC (サーバーレンタルおよびホスティング) 傘下の VPS ブランドである B...

Tmall 618が初めて「グリーンGMV」に言及:注文ごとに前年比17.6%の炭素排出量を削減

6月18日、天猫は今年の618ショッピングフェスティバル期間中、淘宝天猫での注文ごとの二酸化炭素排出...