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

推薦する

10日間の重み7 SEO技術と思考の衝突

今朝、誰かがウェブサイトを覗いていました。それは 10 日前に開設されたウェブサイトで、特に目立つも...

WeChat公式アカウントプロモーション | バイラルレベルの公式アカウント分裂とファン増加活動の2つの重要なポイント!

本稿では、計画策定と実践ポイントという2つの側面から活動全体の重要な詳細を分析・紹介し、パブリックア...

大企業がキーワードマイニングの拡大を図る方法の解釈

ローカル検索トラフィックが成長を続けるにつれ、複数の地域で事業を展開している企業(大企業と呼びましょ...

サーバーレスエンジニアリングの実践 |サーバーレスサポートサービスのカウント

序文前述のように、クラウド コンピューティングの 10 年以上にわたる発展は、インターネット業界全体...

PaaS、CaaS、FaaS、どれを選ぶべきか?

企業は、コンテナベースのアプリケーション向けのクラウド コンピューティング アーキテクチャを選択する...

SEOエディターが外部リンク構築や取引プラットフォームの基本的な操作方法を共有

SEO初心者でも、経験豊富なSEOウェブマスターでも、SEOオフサイト最適化を行うときは、外部リンク...

北京市衛生監督局:医療ウェブサイトに「中国」という名称をつけることは許可されない

北京時報(李秋萌記者)記者は昨日、北京市衛生監督管理研究所から、同市がインターネット上の医療・健康情...

reprisehosting: 30% オフ、シアトル (専用) サーバー、月額 27 ドル、L5640/16G メモリ/1T ハードディスク/10T トラフィック

Reprisehostingは低価格・格安サーバーに特化した事業者と言えます。アメリカ西海岸のシアト...

適切なウェブサイトSEO診断を行う際には、こだわりすぎないようにしましょう

SEO診断という言葉が2009年に徐々に皆に認知されて以来、検索数は増加傾向にあり、2012年初頭に...

今後のフェスティバルでマーケティングとブランドの影響力を高めるにはどうすればよいでしょうか?

ホリデー マーケティングは新しい話題ではありません。ホリデー プロモーションがあるときは、友人がヨー...

リバースホスト6.99 USD/月3Gメモリ/4Gバースト/85Gハードディスク/Gポート

Reversehosts は、半年ほど前に設立された新しい VPS ビジネスです。新しいサーバーは、...

マルチチャネルプロモーションにおいてアトリビューションモデルはどの程度重要ですか?コンバージョンコストを一気に削減する秘訣!

今日は、オンラインプロモーションのプロセスにアトリビューションモデルを適用する価値についてお話しした...

dedione - Shark pure CN2ラインVPS、特別価格KVMを50台限定で販売

先週、dedione は新製品を発表しました。Shark データ センターの超格安 VPS、1Gbp...

クラウドコンピューティングにおけるポストモダニズム

近年、多くの企業がビジネスをクラウド コンピューティング プラットフォームに移行しています。この移住...

georgedatacenter: 年間 84 ドル、8G メモリ/4 コア (AMD)/50g NVMe/1Gbps 帯域幅 (トラフィック無制限)

georgedatacenter (2009 年設立) は現在、ロサンゼルス、カンザス、アムステルダ...