uni-app原生插件添加通用插件

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

uni-app原生插件添加通用插件

原生插件添加通用插件,用于插件引入测试;

避免作者发布的原生插件问题导致报错而无法排查,也便于问题的发现,及时与原生插件作者沟通;

2 回复

看不懂你想表达什么,什么都能做,加我加我


在uni-app中添加原生插件,特别是通用插件,通常需要几个关键步骤:创建原生插件、配置插件、编写插件代码、并在uni-app中集成和使用。以下是一个简化的流程和代码示例,用于展示如何在uni-app中添加一个通用的原生插件(例如,一个简单的Toast通知插件)。

1. 创建原生插件

首先,创建一个原生插件项目。假设我们使用Android和iOS平台。

Android

android/app/src/main/java/com/yourapp/plugins/目录下创建一个新的Java类:

package com.yourapp.plugins;

import android.widget.Toast;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;

public class ToastPlugin extends UniModule {

    @UniJSMethod(uiThread = true)
    public void showToast(String message, UniJSCallback callback) {
        Toast.makeText(mUniContext.getContext(), message, Toast.LENGTH_SHORT).show();
        if (callback != null) {
            callback.invoke();
        }
    }
}

iOS

ios/YourApp/Classes/目录下创建一个新的Objective-C类:

// ToastPlugin.h
#import <Foundation/Foundation.h>
#import <UniAppBridge/UniModule.h>

@interface ToastPlugin : NSObject <UniModule>

- (void)showToast:(NSString *)message callback:(nullable void (^)(id))callback;

@end

// ToastPlugin.m
#import "ToastPlugin.h"
#import <UIKit/UIKit.h>

@implementation ToastPlugin

- (void)showToast:(NSString *)message callback:(nullable void (^)(id))callback {
    dispatch_async(dispatch_get_main_queue(), ^{
        UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
        [vc presentViewController:[UIAlertController alertControllerWithTitle:nil message:message preferredStyle:UIAlertControllerStyleAlert] animated:YES completion:nil];
        if (callback) {
            callback(@"done");
        }
    });
}

@end

2. 配置插件

manifest.json中配置插件路径:

"app-plus": {
    "distribute": {
        "plugins": {
            "ToastPlugin": {
                "package": "com.yourapp.plugins.ToastPlugin", // Android
                "ios": "ToastPlugin" // iOS
            }
        }
    }
}

3. 在uni-app中使用插件

在JavaScript代码中调用插件:

// #ifdef APP-PLUS
plus.bridge.exec("ToastPlugin", "showToast", ["Hello, uni-app!"], function(res) {
    console.log("Toast shown:", res);
});
// #endif

这个示例展示了如何创建一个简单的Toast通知插件,并在uni-app中调用它。根据实际需求,你可以扩展插件的功能,并在不同的平台上进行相应调整。

回到顶部