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

推薦する

彼らは大量のサーバーをあなたに押し付け、クラウドコストを50%削減したいと考えている

ここ二日間、杭州は曇りと雨が続いています。灰色の雲奇会議会場で最も目を引くのは、赤く塗られたこの大き...

SaaS プロバイダーのセキュリティを確認するための 10 のプラン

ますます多くの企業にとって、SaaS は重要なビジネス アプリケーションにアクセスするための主要な手...

Demi Cloud - VPS 60% 割引、サイト全体にユニバーサル、ロサンゼルス C3/香港/福州/貴州などの複数のデータセンター

西安賴菲雲科技有限公司のブランドである Demi Cloud は、企業形式で運営されており、仮想ホス...

テンセントクラウドIoTは「疫病予防マスター」共同ソリューションを発表し、フルリンクインテリジェント疫病予防システムの構築を支援

感染症の予防と制御が常態化するにつれ、モノのインターネットや人工知能などのデジタル技術がより大きな役...

専用com: 月額 54 ドル、米国専用サーバー (ロサンゼルスを含む 9 つのデータセンター)、E3-1270v5/v6/64G メモリ/2*512GSSD/100T トラフィック/5IPv4

Dedicated.com は、米国の老舗サーバープロバイダーです。主に低価格の独立サーバー事業を運...

5月の世界OS市場シェア競争:Windows 7が初めて50%を超える

IDC Review Network (idcps.com) は 6 月 11 日に次のように報告し...

ウェブサイトを構築するときに、まだPRを考慮していますか?最適化する際には正しい姿勢を持ってください

1. ウェブサイトを構築するときに、依然として PR を考慮しますか? 1. SEO 担当者は日々さ...

統計ツールランキングリストからウェブサイト最適化効果を分析する

ウェブサイトの統計ツールの中には、ソース昇格と降格リストという、ウェブサイトの最適化効果を分析するた...

IBM、次世代クラウドコンピューティング向けの初のマルチクラウド管理ソリューションを発表

[[249529]] IBM Watsonおよびクラウドプラットフォーム担当グローバルゼネラルマネー...

私の「小さな恋人」の世話の仕方——

SEOの大家族には、外部リンク、内部リンク、ウェブサイトのインターフェース設計、ユーザーエクスペリエ...

煩わしい Windows 10 の自動更新に別れを告げる 3 つの簡単な方法をお教えします

昨年の夏、Microsoft が Windows 10 Anniversary Update をリリ...

国内のSaaS企業はついに嫌われる存在になってしまった!

SaaSとは、英語でSoftware as a Serviceの略で、オンラインレンタルモデルで法人...

Docker: 人々が後悔する賭け

【編集後記】Docker には利点もありますが、その裏には無理な設計も数多く存在します。この記事の目...

分類情報サイトのドメイン名年次イベント:Ganji.com が 1 年間で多額の資金を投じてピンインドメイン名を 2 つ購入

一年間の努力を経て、年末の総括から私たちは何を得たのでしょうか?また一年が過ぎ、今年はインターネット...

2019年の独立系貿易ウェブサイト構築のためのSEO戦略とトレンド分析がここにあります!無駄な仕事はやめましょう!

Google SEO は、販売者がウェブサイトのランキングを向上させ、より多くのトラフィックと注文を...