iOS集成指南
集成前必读:
由于微信小程序和APP交互的限制,APP调起小程序要求APP必须在微信开放平台已经认证,如果没有认证无法调起微信小程序,集成前请先前往微信开放平台进行认证。如果已经集成过微信登录、微信支付或者微信的分享则可以直接使用。
一、集成 SDK
注:SDK最低要求 iOS 9.0,如果您的项目最低支持版本低于 iOS 9.0,请先升级项目。Objective-C 和 Swift均支持。
方式一:CocoaPods
pod 'JijiancodeSDK', '~> 1.1.0'
如果项目主要开发语言为Swift,参考Apple官方文档,创建Objective-C bridging header,并在header中增加以下代码:
#import <JijiancodeSDK/JJCode.h>
方式二:手动集成
- 前往 JijiancodeSDK下载
- 找到项目中的
JijiancodeSDK
目录,将其复制到项目的根目录下
如果项目主要开发语言为Swift,参考Apple官方文档,创建Objective-C bridging header,并在header中增加以下代码:
#import "JJCode.h"
二、配置 APP_ID
和 微信 APP_ID
找到项目中的Info.plist
, 增加以下配置:
<key>com.jijiancode.APP_ID</key>
<string>JIJIANCODE_APP_ID</string>
<key>com.jijiancode.WX_APP_ID</key>
<string>WX_APP_ID</string>
请将 JIJIANCODE_APP_ID 替换成 JiJianCode 为应用分配的 AppId , 请将WX_APP_ID 替换成 微信分配的 AppId
三、初始化
Objective-C
参考以下代码完成配置JJCodeSDK:
AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate, JJCodeDelegate, WXApiDelegate>
@property (strong, nonatomic) UIWindow * window;
@end
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[JJCode startInit:self];
// 其他初始化代码
[WXApi registerApp:@"wx522437950f35xxxx" universalLink:@"https://www.xxxxx.com/ulink/"];
return YES;
}
// 必须实现,直接参考复制以下代码即可
- (void)jjCodeDidLaunchMiniProgram:(NSString *)reqUserName
reqPath:(NSString *)reqPath
reqCompletion:(void (^)(BOOL))reqCompletion {
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = reqUserName;
launchMiniProgramReq.path = reqPath;
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
[WXApi sendReq:launchMiniProgramReq completion:^(BOOL success) {
reqCompletion(success);
}];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
[JJCode handleSchemeLinkURL:url];
// 其他处理代码
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[JJCode handleSchemeLinkURL:url];
// 其他处理代码
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
[JJCode handleUniversalLink:userActivity];
// 其他处理代码
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
// 必须实现,直接参考复制以下代码即可
- (void)onResp:(BaseResp *)resp {
if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]]) {
WXLaunchMiniProgramResp* miniResp = (WXLaunchMiniProgramResp *)resp;
[JJCode handleWXResp:miniResp.extMsg];
}
}
Swift
请直接参考DemoSwift完成配置JJCodeSDK
四、启动验证流程
在需要对手机号验证时,调用JJCode.verify
启动验证,在启动验证之前,建议根据业务逻辑先对手机号的合法性进行校验。
Objective-C
[JJCode verify:phoneNumber success:^(NSString * _Nonnull mobile, NSString * _Nonnull token) {
NSString* info = [NSString stringWithFormat:@"success mobile: %@, token: %@", mobile, token];
[self showAler:@"Success" :info];
} fail:^(NSInteger code, NSString * _Nonnull message) {
NSString* errorInfo = [NSString stringWithFormat:@"fail code: %ld, message: %@", code, message];
[self showAler:@"Fail" :errorInfo];
}];
五、提交后端进行校验
由于客户端不是完全可信的环境,在上一步验证成功后,在注册或者登录提交数据时,需要将验证返回的mobile
和token
全部提交到后端,由后端调用我们提供的API
校验是否手机号已真实的校验通过。
六、控制台配置BundleID和TeamID信息
为了防止APP_ID
被非法冒用引起不必要的麻烦,强烈建议在我们控制台配置应用Bundle ID和TeamID信息; TeamID 可以配置多个,Bundle ID只能配置一个。TeamID可以登录Apple开发者后台获取。