uni-app android 离线sdk

uni-app android 离线sdk

2 回复

官方渠道下载:

访问 DCloud 官方下载页面

选择与您 UniApp 版本匹配的 SDK 版本

更多关于uni-app android 离线sdk的实战教程也可以访问 https://www.itying.com/category-93-b0.html


UniApp 提供了 Android 离线 SDK,允许开发者在本地环境中集成 UniApp 功能到原生 Android 应用中,而不需要依赖在线打包服务。

获取UniApp 离线 SDK

  1. 官方渠道下载

  2. SDK 包含内容

    • 核心库文件 (.aar)
    • 依赖的第三方库
    • 示例项目
    • 文档和集成指南

集成步骤

1. 导入 SDK 到 Android 项目

// 在项目的 build.gradle 中添加仓库
allprojects {
    repositories {
        flatDir {
            dirs 'libs' // 指定存放aar的目录
        }
    }
}

// 在模块的 build.gradle 中添加依赖
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    // 其他uni-app所需依赖...
}

2. 配置 AndroidManifest.xml

<application
    android:name="io.dcloud.application.DCloudApplication"
    ...>
    
    <activity
        android:name="io.dcloud.PandoraEntryActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:launchMode="singleTask"
        android:hardwareAccelerated="true"
        android:theme="@style/TranslucentTheme"
        android:screenOrientation="user">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

3. 初始化 UniApp 运行时

在 Application 类中初始化:

public class MyApplication extends DCloudApplication {
    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化SDK
        InitSDK.init(this);
    }
}

加载 UniApp 页面

1. 放置 UniApp 资源

将 UniApp 打包后的资源(通常是 www 文件夹)放入 Android 项目的 assets 目录中。

2. 启动 UniApp 页面

Intent intent = new Intent();
intent.setClass(this, PandoraEntryActivity.class);
intent.putExtra("path", "/pages/index/index"); // 指定启动页面
startActivity(intent);

常见问题解决

  1. 资源加载失败

    • 检查资源是否完整放置在 assets 目录
    • 确认打包时的应用标识与原生项目一致
  2. 原生与UniApp通信

    // UniApp调用原生方法
    DCUniMPSDK.getInstance().sendEventToUniMP("eventName", data);
    
    // 原生接收UniApp事件
    DCUniMPSDK.getInstance().setOnUniMPEventCallBack(new OnUniMPEventCallBack() {
        @Override
        public void onUniMPEventReceive(String event, Object data) {
            // 处理事件
        }
    });
    
回到顶部