uni-app 安卓苹果SDK制作插件
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显示插件。你可以根据实际需求进一步扩展插件功能。