之前公司要求写一个sdk,里面封装好微信拉起小程序让集成方不用再集成
具体实现:
1、 创建类 WXApiManager
2、 集成微信SDK 如图
3、添加需要的库文件 如图
4、 在WXApiManager.h 中具体实现
#import <Foundation/Foundation.h>
#import "WXApi.h"
@protocol WXApiManagerDelegate <NSObject>
@optional
//回调方法
- (void)wxApiManagerDidReLaunchMiniProgram:(WXLaunchMiniProgramResp *)response;
@end
@interface WXApiManager : NSObject <WXApiDelegate>
@property (nonatomic, assign) id<WXApiManagerDelegate> delegate;
+ (instancetype)sharedManager;
/**
调起小程序
@param userName 拉起的小程序的username
@param path 拉起小程序页面的可带参路径,不填默认拉起小程序首页
@param miniProgramType 拉起小程序的类型 WXMiniProgramTypeRelease = 0 正式版
WXMiniProgramTypeTest = 1 开发版
WXMiniProgramTypePreview = 2 体验版
@return 返回
*/
- (BOOL)launchMiniProgramWithUserName:(NSString *)userName
path:(NSString *)path
type:(WXMiniProgramType)miniProgramType;
@end
5、WXApiManager.m 实现
#import "WXApiManager.h"
@implementation WXApiManager
#pragma mark - LifeCycle
+(instancetype)sharedManager {
static dispatch_once_t onceToken;
static WXApiManager *instance;
dispatch_once(&onceToken, ^{
instance = [[WXApiManager alloc] init];
});
return instance;
}
-(void)onResp:(BaseResp *)resp
{
if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
{
if ([_delegate respondsToSelector:@selector(wxApiManagerDidReLaunchMiniProgram:)]) {
[_delegate wxApiManagerDidReLaunchMiniProgram:(WXLaunchMiniProgramResp *)resp];
}
}
}
- (BOOL)launchMiniProgramWithUserName:(NSString *)userName
path:(NSString *)path
type:(WXMiniProgramType)miniProgramType
{
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = userName;
launchMiniProgramReq.path = path;
launchMiniProgramReq.miniProgramType = miniProgramType;
return [WXApi sendReq:launchMiniProgramReq];
}
@end
6、 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 注册
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[WXApi registerApp:@"wx596faabb6e400ca0"];
return YES;
}
7、调用
[[WXApiManager sharedManager] launchMiniProgramWithUserName:@"gh_d43f693ca31f@app" path:@"http://www.baidu.com" type:2];