Files
tra-app/Ios/SDK/inc/DCUni/DCUniBasePlugin.h
T
2025-08-02 18:35:47 +08:00

161 lines
3.4 KiB
Objective-C

//
// DCUniBasePlugin.h
//
// Created by DCloud on 2020/11/2.
// Copyright © 2020 DCloud. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "DCUniDefine.h"
#import "WXComponent.h"
#import "WXSDKInstance.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, DCUniState) {//state.code
DCUniInstanceAppear = 100,
DCUniInstanceDisappear,
DCUniInstanceForeground,
DCUniInstanceBackground,
DCUniInstanceMemoryWarning,
DCUniInstanceBindChanged,
DCUniInstanceDestroy
};
@interface DCUniBaseCompenent : WXComponent
@end
@interface DCUniSDKInstance : WXSDKInstance
/**
* DCUni 所呈现的viewControler。
**/
@property (nonatomic, weak) UIViewController *viewController;
/**
* 用于承载vue文件呈现的视图。
* rootView由DCUniSDKInstance 控制,因此只能获取它,而不能更改它
**/
@property (nonatomic, strong) UIView *rootView;
/**
* The scriptURL of vue.
**/
@property (nonatomic, strong) NSURL *scriptURL;
/**
* 父 实例
**/
@property (nonatomic, weak) DCUniSDKInstance *parentInstance;
/**
* 父 节点
**/
@property (nonatomic, weak) NSString *parentNodeRef;
/**
* 标识当前DCUni 实例的唯一ID。
**/
@property (nonatomic, strong) NSString *instanceId;
/**
* 自定义的一些信息.
**/
@property (nonatomic, strong) NSDictionary* containerInfo;
@property (nonatomic, assign) DCUniState uniState;
/**
* 实例完成创建body时触发的回调。
*
* @return 带有UIView参数的block,它是根视图
**/
@property (nonatomic, copy) void (^onCreate)(UIView *);
/**
* 根容器的框架发生更改时触发的回调。
*
* @return 带有UIView参数的block,它是根视图
**/
@property (nonatomic, copy) void (^onLayoutChange)(UIView *);
/**
* 实例完成渲染后触发的回调。
*
* @return 带有UIView参数的block,它是根视图
**/
@property (nonatomic, copy) void (^renderFinish)(UIView *);
/**
* 实例完成刷新视图时触发的回调。
*
* @return 带有UIView参数的block,它是根视图
**/
@property (nonatomic, copy) void (^refreshFinish)(UIView *);
/**
* 实例渲染失败时触发的回调。
*
* @return 带有NSError参数的块,即发生的错误
**/
@property (nonatomic, copy) void (^onFailed)(NSError *error);
/**
* 当前实例的框架。
**/
@property (nonatomic, assign) CGRect frame;
/**
* 用户存储的信息。
*/
@property (atomic, strong) NSMutableDictionary *userInfo;
- (void)renderWithURL:(NSURL *)url;
- (void)renderWithURL:(NSURL *)url options:(NSDictionary * _Nullable)options data:(id _Nullable)data;
/**
* 从当前URL重新加载js包并重新呈现。
*
* @param forcedReload 当此参数为true时,将始终从服务器重新加载js捆绑包。 如果为false,则实例可以从其缓存中重新加载js捆绑包。 默认为false。
*
**/
- (void)reload:(BOOL)forcedReload;
/**
* 设置自定义视图端口/设备宽度后,刷新当前实例组件的布局。
**/
- (void)reloadLayout;
/**
* 用数据刷新当前实例。
*
* @param data 捆绑包呈现时需要的数据。
**/
- (void)refreshInstance:(id)data;
/**
* 销毁当前实例。 销毁的实例不应再次用于渲染,请创建另一个实例。
**/
- (void)destroyInstance;
/**
* 发送全局事件
*/
- (void)fireGlobalEvent:(NSString *)eventName params:(NSDictionary *)params;
@end
NS_ASSUME_NONNULL_END