デバイス間の移行と分散ファイル機能に基づく 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についてどれくらい知っていますか?

推薦する

verelox-2.29 ユーロ/VPS/カスタム ISO/Windows/無制限トラフィック/KVM/無料 DDoS 保護

verelox.com は、オランダのハーグに設立されたホスティング会社で、VPS、サーバーレンタル...

偽造外国貿易サイトのランキングが「短命」である理由について簡単に説明します

これまで、Baidu でのランキングは Google よりも難しいと感じていました。 Baidu は...

モバイルソーシャル製品は、商業的な包囲の中でどのように独立を達成できるのでしょうか?

モバイルインターネットの強力な影響から生まれた製品チェーンは、これまで業界関係者に衝撃を与えてきまし...

hostflyte: 月額 1.5 ドル、cn2 vps、Windows システム、「スイッチ IP」をサポート、Alipay/WeChat、KVM/1g メモリ/10gSSD/1T トラフィック

hostflyte は、Alipay の支払い方法を正式に受け入れることを発表しました。以前の Pa...

Kubernetes ネットワーク プラグインの詳細な説明 - Calico の章 - 概要

1. コンテナネットワークと戦略Kubernetes 自体はコンテナ ネットワークを実装していませ...

クルンはどうですか? 「3ネットワークCN2 GIA」ラインのサーバーの簡単な評価

Kurunは、国内の高速アクセスを確保するために、常にハイエンドのリターン回線を提供することで有名で...

エッジ コンピューティングとは何ですか? また、高等教育でどのように活用できますか?

今後 18 か月以内にエッジ コンピューティング ソリューションを導入し、モノのインターネット (I...

Google が Flash ページのインデックスを停止

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスGoogle 検索は F...

人々に「便利さ」を提供するナビゲーションステーションは、どのようにして自らの活路を見つけることができるのでしょうか。

昨日は地元のウェブマスター交流会に参加し、多くのことを学びました。参加者の中には、1ページでタオバオ...

使い捨てアプリはユーザーエクスペリエンスを無視しています。モバイルアプリは今後どのように発展していくのでしょうか?

これからはモバイルインターネットの時代です。モバイルインターネットの発展に関しては、ユーザーはモバイ...

XSroute - $6.5/KVM/Windows/1g メモリ/2CPU/25gSSD/1T トラフィック

XSrouteは2005年に運営を開始し、2006年に登録されたVPS事業者です。登録番号は47-5...

SEO初心者の視点から見たダイヤモンドバード

EBAY発祥のオンラインダイヤモンドブランド「Diamond Bird」は、わずか数年でインターネッ...

2021 年のクラウド コンピューティングの 8 つのトレンド

時代と企業は共に呼吸し、企業と個人は同じ運命を共にする。昨日3月16日、Qingyunは株式コード6...

alphavps: 1GB RAM VPS、年間12ユーロから、ロサンゼルスを含む5つのデータセンターが利用可能

ブルガリアの商人 alphavps は一連のプロモーションを開催しています。1G メモリを搭載した安...

Tencent Cloudが役立ちます! 「大運河国立文化公園デジタルクラウドプラットフォーム」の構築

2,500年以上の歴史を持つ大運河は、クラウドへの移行を加速させています。 4月23日、テンセントク...