You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何过滤设备已安装应用,仅保留google_maps与apple_maps

如何过滤设备已安装应用,仅保留google_maps与apple_maps

嘿,这事儿其实挺简单的!你现在的代码已经能筛选出所有已安装的应用了,要精准锁定google_maps和apple_maps,只需要在过滤逻辑里加个额外的判断条件就行。

核心思路

原来的过滤只检查了应用是否处于已安装状态(也就是mapsAppInfo[key]为true),现在我们要同时满足两个要求:

  • 应用确实已安装(mapsAppInfo[key]为true)
  • 应用的key属于我们指定的目标列表:google_maps和apple_maps

修改后的完整代码

useEffect(() => {
  const loadAvailableMapApps = async () => {
    const mapsAppInfo = (await launcNavigator.getAvailableApps()) as AppInfo;
    // 定义我们要保留的目标应用key列表
    const targetMapApps = ['google_maps', 'apple_maps'];
    const availableApps = Object.keys(mapsAppInfo).filter(
      (key) => mapsAppInfo[key] && targetMapApps.includes(key),
    );
    setAvailableMapApps(availableApps);
  };

  // eslint-disable-next-line no-void
  void loadAvailableMapApps();
}, []);

额外说明

这样修改后,只有既在目标列表中,又确实已安装的应用才会被加入最终的availableApps数组里。如果你的设备上不存在apple_maps(比如安卓设备),它会自动被过滤掉,不会影响最终结果。

备注:内容来源于stack exchange,提问作者Bomber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:13:02