Flutter开发如何添加应用别名提升手机本地搜索可查找性(非应用商店)
iOS端实现
不需要完整接入SiriKit,也不需要开发任何Siri相关的业务功能,仅通过配置文件即可实现本地搜索识别别名的需求,无需额外代码开发。
配置操作步骤:
- 打开Flutter项目下的
ios/Runner/Info.plist文件 - 新增键
INAlternativeAppNames,类型选择数组 - 在数组中添加所有需要支持的拉丁转写别名,可添加多个不同的转写变体
- 配置完成后执行
flutter clean后重新构建安装,系统Spotlight本地搜索会自动识别配置的别名
安卓端实现
安卓通过配置启动器搜索规则和应用别名实现需求,适配不同系统版本的操作如下:
全版本通用基础配置
该配置可适配绝大多数原生启动器和第三方启动器的本地搜索:
- 在
android/app/src/main/AndroidManifest.xml中找到主Activity节点,添加搜索相关配置:
<activity android:name=".MainActivity" android:exported="true"> <!-- 原有启动配置 --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!-- 新增搜索匹配配置 --> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> </activity>
- 在
android/app/src/main/res/xml目录下新建searchable.xml文件,添加你需要的拉丁转写别名:
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_name" android:hint="@string/search_hint" android:keywords="Sberbank, 其他需要的转写别名,多个用英文逗号分隔" />
安卓13及以上专属优化
安卓13(API 33)及以上系统支持直接配置应用别名,系统级搜索识别准确率更高,以下配置不会生成额外的桌面图标:
在AndroidManifest.xml的<application>节点下添加如下配置:
<activity-alias android:name=".AppAliasLatin" android:targetActivity=".MainActivity" android:label="Sberbank" android:enabled="false" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity-alias>
注意事项
- 所有配置修改完成后,都需要执行
flutter clean清理缓存后重新构建安装,新配置才会生效 - 部分定制ROM的启动器可能有自己的搜索规则,若不生效可针对对应ROM的官方开发文档做适配调整
内容的提问来源于stack exchange,提问作者BraveNotSoThough
相关产品推荐
相关产品推荐

