uni-app 新版本 导入uniMPSDK-V2-release.aar后 通信不能用了

uni-app 新版本 导入uniMPSDK-V2-release.aar后 通信不能用了

信息类别 详情
产品分类 uni小程序SDK
手机系统 Android
手机系统版本号 Android 10
手机厂商 魅族
手机机型 16th
页面类型 vue
SDK版本号 3.2.16

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

更新3.2.16版本后 导入对应的arr ,uniMPSDK-V2-release.aar 会影响小程序与宿主通信,


更多关于uni-app 新版本 导入uniMPSDK-V2-release.aar后 通信不能用了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 新版本 导入uniMPSDK-V2-release.aar后 通信不能用了的实战教程也可以访问 https://www.itying.com/category-93-b0.html


更新到 uniMPSDK V2 3.2.16 版本后,通信接口确实有重大变更。主要原因是新版 SDK 重构了通信机制,旧版 API 已废弃。

核心问题: 新版 uniMPSDK-V2-release.aar 使用了全新的 UniMP 通信类,替代了旧版的 DCUniMPSDK 类中的通信方法。

解决方案:

  1. 修改通信调用方式

    • 旧版 (3.2.16之前): 使用 DCUniMPSDK.sendUniMPEvent() 等方法。
    • 新版 (3.2.16及之后): 必须改为通过 UniMP 实例进行通信。
      • 在宿主(原生)端,通过 UniMP.getCurrentUniMP() 获取当前小程序实例。
      • 使用该实例的 sendEvent() 方法发送事件。
  2. 关键代码示例 (宿主端 - Android)

    // 获取当前运行的小程序实例
    UniMP uniMP = UniMP.getCurrentUniMP();
    if (uniMP != null) {
        // 构建事件数据
        HashMap<String, Object> eventData = new HashMap<>();
        eventData.put("key", "value");
        // 发送事件到小程序
        uniMP.sendEvent("nativeEvent", eventData, new IUniMPEventCallback() {
            @Override
            public void onResult(Object data) {
                // 接收小程序回调(如果需要)
            }
        });
    }
    
  3. 小程序端 (JS/Vue) 接收方式不变

    // 监听原生事件
    uni.onNativeEventReceive((event, data, callback) => {
        console.log('收到原生事件:', event, data);
        // 处理数据...
        // 可选:回调数据给原生
        callback({ reply: 'data from uni-app' });
    });
回到顶部