ios app拉起小程序

之前公司要求写一个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];

猜你喜欢

转载自blog.csdn.net/u013983033/article/details/87856268
今日推荐