如何获取到其他应用分享的内容
==============

#### 问题现象

在“entry/src/main/ets/entryability/EntryAbility”文件中onForeground生命周期方法使用systemShare.getSharedData方法无法获取到其他应用分享的内容。

问题代码示例参考如下：

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';
import { systemShare } from '@kit.ShareKit';

const DOMAIN = 0x0000;

let  storageWant:Want|undefined = undefined
export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    storageWant = want;
  }
 _ // ..._
  onForeground(): void {
   _ // Ability has brought to foreground_
    systemShare.getSharedData(storageWant)
      .then((data: systemShare.SharedData) => {
        data.getRecords().forEach((record: systemShare.SharedRecord) => {
         _ // 处理分享数据_
          console.info('getSharedData utd 分享')
        });
      })
      .catch((error: BusinessError) => {
        console.error(\`Failed to getSharedData. Code: ${error.code}, message: ${error.message}\`);
      });
  }
}

#### 背景知识

[onNewWant](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-app-ability-uiability#onnewwant)：当已经启动的UIAbility实例再次被拉起时，系统会触发该回调。

[onForeground](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/uiability-lifecycle#onforeground)：在UIAbility切换至前台时且UIAbility的UI可见之前，系统触发onForeground回调。

#### 解决方案

onNewWant和onForeground都具备从后台转前台触发的特性。但是onForeground没有返回最新的want，而onNewWant方法能够获取新的want，这个want里有其他应用分享的内容。示例如下：

onNewWant(want: Want) {
  systemShare.getSharedData(want)
    .then((data: systemShare.SharedData) => {
      data.getRecords().forEach(() => {
       _ // 处理分享数据_
        this.context.eventHub.emit("ShareContent", { msg: "应用进入前台" });
      });
    })
    .catch((error: BusinessError) => {
      console.error(\`Failed to getSharedData. Code: ${error.code}, message: ${error.message}\`);
    });
}

另外，目标应用可通过解析分享过来的数据中的[SharedRecord](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/share-system-share#section20696483813)里的UTD的值判断分享的文件夹或具体的文件类型。

类型匹配参考：[UTD预置列表](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/uniform-data-type-list)。文件夹名或文件名可以通过title字段获取。以便在界面展示分享内容的基本信息。