uniapp 如何开发原生快捷入口

在uniapp中如何开发原生快捷入口?比如类似微信小程序那种直接添加到桌面的功能。需要调用原生的API吗?具体应该怎么实现?有没有完整的代码示例或者详细的步骤说明?

2 回复

在H5页面中,使用plus.runtime.launchApplication调用原生方法,传入scheme或包名。iOS需配置URL Scheme,Android需配置Intent Filter。


在 UniApp 中,原生快捷入口(如 iOS 的 App Clips 或 Android 的 App Shortcuts)需要通过原生平台能力实现,UniApp 本身不直接提供跨端 API。以下是实现方法:


1. Android 应用快捷方式(App Shortcuts)

使用原生 Android 配置,通过 UniApp 的 Native.js 或原生插件调用。

步骤:

  1. 在 Android 原生工程中配置 Shortcuts(在 res/xml/shortcuts.xml 中定义):
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
    <shortcut
        android:shortcutId="quick_entry"
        android:enabled="true"
        android:icon="@drawable/icon"
        android:shortcutShortLabel="@string/short_label"
        android:shortcutLongLabel="@string/long_label">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.example.app"
            android:targetClass="com.example.app.MainActivity" />
    </shortcut>
</shortcuts>
  1. AndroidManifest.xml 中注册
<activity android:name=".MainActivity">
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
</activity>
  1. UniApp 中通过 Native.js 动态创建(可选)
// 需在 Android 平台运行
if (plus.os.name === 'Android') {
  const main = plus.android.runtimeMainActivity();
  const ShortcutManager = plus.android.importClass('android.content.pm.ShortcutManager');
  const manager = main.getSystemService('shortcut');
  // 动态添加快捷方式代码(需适配 Android 版本)
}

2. iOS App Clips

通过配置 iOS 原生工程实现,UniApp 需集成原生模块。

步骤:

  1. 在 Xcode 中添加 App Clip Target

    • 在项目中新建一个 App Clip Target,配置 Bundle ID 和关联主 App。
    • Info.plist 中注册 NSUserActivity 类型。
  2. 配置 Associated Domains

    • 在开发者中心为 App Clip 和主 App 配置相同的 Associated Domain(格式:appclips:example.com)。
  3. UniApp 中触发 App Clip

    • 通过网页链接或 NFC 触发,UniApp 无法直接控制,需依赖原生逻辑。

注意事项

  • 平台限制:Android 快捷方式需 API 25(Android 7.1)及以上;iOS App Clips 需 iOS 14 及以上。
  • 动态快捷方式:Android 支持代码动态创建,但需用户授权;iOS App Clips 依赖外部触发。
  • 插件开发:若频繁使用,建议封装为 UniApp 原生插件,简化调用。

如需完整示例或插件集成,可参考 UniApp 官方插件市场或 Android/iOS 原生开发文档。

回到顶部