uni-app 安卓苹果SDK制作插件

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

uni-app 安卓苹果SDK制作插件

安卓苹果SDK制作uniapp插件,联系QQ:99411536

1 回复

在uni-app中,为安卓(Android)和苹果(iOS)平台制作SDK插件,通常需要分别进行原生代码的编写和配置。以下是一个简要的示例,展示如何为uni-app创建一个简单的原生插件,该插件在安卓和iOS平台上都具备一个基本的功能:显示一个Toast消息。

1. 创建插件目录结构

首先,在你的uni-app项目根目录下创建一个native-plugins目录,用于存放原生插件代码。目录结构如下:

your-uni-app/
├── native-plugins/
│   ├── my-toast-plugin/
│   │   ├── android/
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── java/
│   │   │               └── com/
│   │   │                   └── example/
│   │   │                       └── MyToastPlugin.java
│   │   ├── ios/
│   │   │   └── Classes/
│   │   │       └── MyToastPlugin.m
│   │   └── manifest.json
├── manifest.json
├── pages/
└── ...

2. 编写Android插件代码

android/src/main/java/com/example/MyToastPlugin.java中,编写以下代码:

package com.example;

import android.widget.Toast;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
import io.dcloud.feature.uniapp.common.event.UniJSCallbackListener;

public class MyToastPlugin extends UniModule {
    public void showToast(String message, UniJSCallbackListener listener) {
        Toast.makeText(getUniSDKInstance().getContext(), message, Toast.LENGTH_SHORT).show();
        if (listener != null) {
            listener.invokeAndKeepAlive(null);
        }
    }
}

3. 编写iOS插件代码

ios/Classes/MyToastPlugin.m中,编写以下代码:

#import <Foundation/Foundation.h>
#import <uni-app-lib/UniModule.h>

@interface MyToastPlugin : NSObject <UniModule>
@end

@implementation MyToastPlugin

- (void)showToast:(NSString *)message callback:(nullable UniJSCallback)callback {
    dispatch_async(dispatch_get_main_queue(), ^{
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:message preferredStyle:UIAlertControllerStyleAlert];
        [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
        [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alert animated:YES completion:nil];
        if (callback) {
            callback(@[]);
        }
    });
}

@end

4. 配置插件manifest.json

native-plugins/my-toast-plugin/manifest.json中,配置插件信息:

{
  "id": "my-toast-plugin",
  "name": "My Toast Plugin",
  "version": "1.0.0",
  "description": "A simple toast plugin for uni-app",
  "android": {
    "package": "com.example.MyToastPlugin"
  },
  "ios": {
    "headerFiles": "Classes/*.h",
    "sourceFiles": "Classes/*.m"
  }
}

以上是一个简单的uni-app原生插件示例,展示了如何为安卓和iOS平台创建并配置一个基本的Toast显示插件。你可以根据实际需求进一步扩展插件功能。

回到顶部