uni-app 添加对Android Shortcuts的支持

发布于 1周前 作者 itying888 来自 Uni-App

uni-app 添加对Android Shortcuts的支持 目前是支持iOS的 3D Touch,还没有支持安卓的Shortcuts,希望可以兼容,或者直接在HBuilderX通过视图设置。

效果:

图像

原生安卓是这样写的:

<meta-data android:name="android.app.shortcuts"
android:resource="[@xml](/user/xml)/shot_shortcut" />

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">

<shortcut  
    android:shortcutId="shortcut_identify"    //要唯一  
    android:enabled="true"  
    android:icon="@drawable/shortcut_icon"    //快捷方式图标  
    android:shortcutShortLabel="@string/shortcut_short"   //快捷方式的短名称  
    android:shortcutLongLabel="@string/shortcut_long"         //快捷方式的长名称,优先使用长名称  
    android:shortcutDisabledMessage="@string/shortcut_disabled"&gt;    //快捷方式被禁用信息  
    <intent  
        android:action="android.intent.action.VIEW"    //  
        android:targetPackage="com.demo.shortcutsTest"    //包名  
        android:targetClass="com.demo.shortcutsTest.MainActivity" /&gt;    //具体要跳到的类  

    <categories android:name="android.shortcut.conversation" /&gt;  //目前只有这个categories分类  
</shortcut>  

<!--每个应用最多可以注册5个Shortcuts-->

</shortcuts>

3 回复

同样求支持


要在uni-app中添加对Android Shortcuts(快捷方式)的支持,你需要利用原生插件或者自定义原生模块来实现这一功能,因为uni-app本身不直接支持Android Shortcuts。以下是一个基本的实现思路,包括必要的Android原生代码和uni-app调用示例。

步骤一:创建Android原生插件

  1. 创建插件项目:使用Android Studio创建一个新的Android库项目。

  2. 添加Shortcuts支持

    AndroidManifest.xml中定义shortcuts:

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    
        <meta-data
            android:name="android.app.shortcuts"
            android:resource="@xml/shortcuts" />
    </activity>
    

    创建res/xml/shortcuts.xml文件,定义shortcuts:

    <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
        <shortcut
            android:shortcutId="shortcut_id_1"
            android:enabled="true"
            android:icon="@drawable/ic_shortcut_1"
            android:shortcutShortLabel="@string/shortcut_short_label_1"
            android:shortcutLongLabel="@string/shortcut_long_label_1">
            <intent
                android:action="android.intent.action.VIEW"
                android:targetPackage="com.your.package"
                android:targetClass="com.your.package.MainActivity"
                android:data="your_data_uri" />
        </shortcut>
        <!-- Add more shortcuts as needed -->
    </shortcuts>
    
  3. 编译为AAR文件:在Android Studio中构建项目,生成AAR文件。

步骤二:集成到uni-app

  1. 将AAR文件集成到uni-app:将生成的AAR文件放到uni-app项目的nativeplugins目录下。

  2. manifest.json中配置插件

    "nativePlugins": {
        "AndroidShortcuts": {
            "package": "com.your.package.plugin", // 插件包名
            "version": "1.0.0",
            "provider": "path/to/your/aar/file" // 相对于nativeplugins目录的路径
        }
    }
    
  3. 在uni-app中调用插件

    由于uni-app无法直接调用Android原生代码,你需要通过JSBridge来调用。通常这需要在插件中提供一个JS接口。以下是一个伪代码示例,展示如何调用插件(实际实现取决于插件的具体接口):

    if (uni.getSystemInfoSync().platform === 'android') {
        plus.android.importClass('com.your.package.plugin.YourPluginClass');
        var plugin = new YourPluginClass();
        plugin.showShortcuts(); // 假设插件提供了一个showShortcuts方法来显示shortcuts
    }
    

请注意,上述代码是一个简化的示例,实际实现可能需要更多的细节处理,比如错误处理、权限请求等。此外,由于uni-app和原生插件的交互比较复杂,建议详细阅读uni-app和Android原生开发的相关文档。

回到顶部