Commit 4d307e26 cgx

集成微信登录SDK

1 个父辈 24af9b6c
正在显示 33 个修改的文件 包含 532 行增加20 行删除
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
D0CFD3CF27FB3B920002982B /* launcher@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0CFD3CC27FB3B910002982B /* launcher@2x.png */; }; D0CFD3CF27FB3B920002982B /* launcher@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0CFD3CC27FB3B910002982B /* launcher@2x.png */; };
D0CFD3D027FB3B920002982B /* launcher@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0CFD3CD27FB3B910002982B /* launcher@3x.png */; }; D0CFD3D027FB3B920002982B /* launcher@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0CFD3CD27FB3B910002982B /* launcher@3x.png */; };
D0CFD3D127FB3B920002982B /* launcher.png in Resources */ = {isa = PBXBuildFile; fileRef = D0CFD3CE27FB3B920002982B /* launcher.png */; }; D0CFD3D127FB3B920002982B /* launcher.png in Resources */ = {isa = PBXBuildFile; fileRef = D0CFD3CE27FB3B920002982B /* launcher.png */; };
D0E9408927FE96A900D57495 /* libWeChatSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0E9408727FE96A900D57495 /* libWeChatSDK.a */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
...@@ -105,6 +106,11 @@ ...@@ -105,6 +106,11 @@
D0CFD3CC27FB3B910002982B /* launcher@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "launcher@2x.png"; sourceTree = "<group>"; }; D0CFD3CC27FB3B910002982B /* launcher@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "launcher@2x.png"; sourceTree = "<group>"; };
D0CFD3CD27FB3B910002982B /* launcher@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "launcher@3x.png"; sourceTree = "<group>"; }; D0CFD3CD27FB3B910002982B /* launcher@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "launcher@3x.png"; sourceTree = "<group>"; };
D0CFD3CE27FB3B920002982B /* launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launcher.png; sourceTree = "<group>"; }; D0CFD3CE27FB3B920002982B /* launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launcher.png; sourceTree = "<group>"; };
D0E9408327FE96A900D57495 /* WXApi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXApi.h; sourceTree = "<group>"; };
D0E9408427FE96A900D57495 /* WXApiObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXApiObject.h; sourceTree = "<group>"; };
D0E9408627FE96A900D57495 /* WechatAuthSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WechatAuthSDK.h; sourceTree = "<group>"; };
D0E9408727FE96A900D57495 /* libWeChatSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libWeChatSDK.a; sourceTree = "<group>"; };
D0E9409127FED77000D57495 /* DreamSleep.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DreamSleep.entitlements; sourceTree = "<group>"; };
F02C34A5649294F60932630C /* Pods-DreamSleep.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DreamSleep.release.xcconfig"; path = "Target Support Files/Pods-DreamSleep/Pods-DreamSleep.release.xcconfig"; sourceTree = "<group>"; }; F02C34A5649294F60932630C /* Pods-DreamSleep.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DreamSleep.release.xcconfig"; path = "Target Support Files/Pods-DreamSleep/Pods-DreamSleep.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
...@@ -113,6 +119,7 @@ ...@@ -113,6 +119,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
D0E9408927FE96A900D57495 /* libWeChatSDK.a in Frameworks */,
39CC172FB610DA5F29120B56 /* Pods_DreamSleep.framework in Frameworks */, 39CC172FB610DA5F29120B56 /* Pods_DreamSleep.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
...@@ -242,6 +249,8 @@ ...@@ -242,6 +249,8 @@
D0B5ECA327F2D9DE003EDFE3 /* DreamSleep */ = { D0B5ECA327F2D9DE003EDFE3 /* DreamSleep */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
D0E9409127FED77000D57495 /* DreamSleep.entitlements */,
D0E9408127FE961300D57495 /* Vendors */,
D04567AA27F6D067009F0A82 /* Main */, D04567AA27F6D067009F0A82 /* Main */,
D04567AB27F6D0A5009F0A82 /* Home */, D04567AB27F6D0A5009F0A82 /* Home */,
D04567AC27F6D0BA009F0A82 /* AISleepCoach */, D04567AC27F6D0BA009F0A82 /* AISleepCoach */,
...@@ -299,6 +308,25 @@ ...@@ -299,6 +308,25 @@
path = PrivacyPolicy; path = PrivacyPolicy;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
D0E9408127FE961300D57495 /* Vendors */ = {
isa = PBXGroup;
children = (
D0E9408227FE96A900D57495 /* WechatOpenSDK_1.9.2_NoPay */,
);
path = Vendors;
sourceTree = "<group>";
};
D0E9408227FE96A900D57495 /* WechatOpenSDK_1.9.2_NoPay */ = {
isa = PBXGroup;
children = (
D0E9408327FE96A900D57495 /* WXApi.h */,
D0E9408427FE96A900D57495 /* WXApiObject.h */,
D0E9408627FE96A900D57495 /* WechatAuthSDK.h */,
D0E9408727FE96A900D57495 /* libWeChatSDK.a */,
);
path = WechatOpenSDK_1.9.2_NoPay;
sourceTree = "<group>";
};
E9799C724D3AE78E7105C4CE /* Pods */ = { E9799C724D3AE78E7105C4CE /* Pods */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -595,10 +623,11 @@ ...@@ -595,10 +623,11 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_ENTITLEMENTS = DreamSleep/DreamSleep.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = SPH85C3TWU; DEVELOPMENT_TEAM = 4NDZ6UX8PW;
GCC_PREFIX_HEADER = "${SRCROOT}/DreamSleep/Utils/PrefixHeader.pch"; GCC_PREFIX_HEADER = "${SRCROOT}/DreamSleep/Utils/PrefixHeader.pch";
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
...@@ -614,11 +643,20 @@ ...@@ -614,11 +643,20 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/DreamSleep/Vendors/WechatOpenSDK_1.9.2_NoPay",
);
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = "$(inherited)"; OTHER_LDFLAGS = (
PRODUCT_BUNDLE_IDENTIFIER = com.aolei.sleep.DreamSleep; "$(inherited)",
"-Objc",
"-all_load",
"-l\"c++\"",
);
PRODUCT_BUNDLE_IDENTIFIER = com.aolei.sleep;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = xiaomengSleep_debug_profile;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
TARGETED_DEVICE_FAMILY = 1; TARGETED_DEVICE_FAMILY = 1;
}; };
...@@ -630,6 +668,7 @@ ...@@ -630,6 +668,7 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = DreamSleep/DreamSleep.entitlements;
CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
...@@ -649,11 +688,20 @@ ...@@ -649,11 +688,20 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/DreamSleep/Vendors/WechatOpenSDK_1.9.2_NoPay",
);
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = "$(inherited)"; OTHER_LDFLAGS = (
PRODUCT_BUNDLE_IDENTIFIER = com.aolei.sleep.DreamSleep; "$(inherited)",
"-Objc",
"-all_load",
"-l\"c++\"",
);
PRODUCT_BUNDLE_IDENTIFIER = com.aolei.sleep;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = wildadcprofile; PROVISIONING_PROFILE_SPECIFIER = xiaomengSleep_dis_profile;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
TARGETED_DEVICE_FAMILY = 1; TARGETED_DEVICE_FAMILY = 1;
}; };
...@@ -723,10 +771,11 @@ ...@@ -723,10 +771,11 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_ENTITLEMENTS = DreamSleep/DreamSleep.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = 4NDZ6UX8PW;
GCC_PREFIX_HEADER = "${SRCROOT}/DreamSleep/Utils/PrefixHeader.pch"; GCC_PREFIX_HEADER = "${SRCROOT}/DreamSleep/Utils/PrefixHeader.pch";
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
...@@ -742,11 +791,20 @@ ...@@ -742,11 +791,20 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/DreamSleep/Vendors/WechatOpenSDK_1.9.2_NoPay",
);
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = "$(inherited)"; OTHER_LDFLAGS = (
PRODUCT_BUNDLE_IDENTIFIER = com.aolei.sleep.DreamSleep; "$(inherited)",
"-Objc",
"-all_load",
"-l\"c++\"",
);
PRODUCT_BUNDLE_IDENTIFIER = com.aolei.sleep;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = xiaomengSleep_debug_profile;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
TARGETED_DEVICE_FAMILY = 1; TARGETED_DEVICE_FAMILY = 1;
}; };
......
...@@ -64,7 +64,8 @@ ...@@ -64,7 +64,8 @@
_aiWebView.scrollView.showsVerticalScrollIndicator = NO; _aiWebView.scrollView.showsVerticalScrollIndicator = NO;
_aiWebView.scrollView.showsHorizontalScrollIndicator = NO; _aiWebView.scrollView.showsHorizontalScrollIndicator = NO;
NSURL *url = [NSURL URLWithString:@"https://www.pgyer.com/SMIb"]; // 测试地址:https://www.cbti.cn/sleep/ai/sleep_aicocah
NSURL *url = [NSURL URLWithString:@"https://cbti.mynatapp.cc/sleep/ai/sleep_aicocah"];
NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_aiWebView loadRequest:request]; [_aiWebView loadRequest:request];
} }
......
...@@ -4,4 +4,4 @@ ...@@ -4,4 +4,4 @@
// 主机地址 // 主机地址
SLANT = / SLANT = /
HOST_URL = http:${SLANT}/cbti.nat300.top HOST_URL = https:${SLANT}/cbti.mynatapp.cc
...@@ -5,4 +5,4 @@ ...@@ -5,4 +5,4 @@
// 主机地址 // 主机地址
SLANT = / SLANT = /
HOST_URL = http:${SLANT}/cbti.nat300.top HOST_URL = https:${SLANT}/cbti.mynatapp.cc
...@@ -2,8 +2,26 @@ ...@@ -2,8 +2,26 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>wx4cdd4760092cdfdf</string>
</array>
</dict>
</array>
<key>HOST_URL</key> <key>HOST_URL</key>
<string>${HOST_URL}</string> <string>${HOST_URL}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>weixinULAPI</string>
</array>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>
<dict> <dict>
<key>NSAllowsArbitraryLoads</key> <key>NSAllowsArbitraryLoads</key>
......
...@@ -4,4 +4,4 @@ ...@@ -4,4 +4,4 @@
// 主机地址 // 主机地址
SLANT = / SLANT = /
HOST_URL = https:${SLANT}/www.cbti.cn/sleepiql HOST_URL = https:${SLANT}/www.cbti.cn
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:https://help.wechat.com/sdksample/</string>
</array>
</dict>
</plist>
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// //
#import "LeadView.h" #import "LeadView.h"
#import "WXApi.h"
@interface LeadView () <UIScrollViewDelegate> @interface LeadView () <UIScrollViewDelegate>
@property (nonatomic, strong) UIScrollView *mainScrollView; @property (nonatomic, strong) UIScrollView *mainScrollView;
...@@ -84,6 +85,16 @@ ...@@ -84,6 +85,16 @@
} }
- (void)startAction { - (void)startAction {
#pragma mark - 模拟微信登录
// // 构造SendAuthReq结构体
// SendAuthReq* req = [[SendAuthReq alloc] init];
// req.scope = @"snsapi_userinfo";
// req.state = @"123";
// // 第三方向微信终端发送一个SendAuthReq消息结构
// [WXApi sendReq:req completion:^(BOOL success) {
// DSLog(@"调起微信成功...");
// }];
if (self.delegate && [self.delegate respondsToSelector:@selector(startExplore)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(startExplore)]) {
[self.delegate startExplore]; [self.delegate startExplore];
} }
......
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
#import "PrivacyView.h" #import "PrivacyView.h"
#import "PrivacyViewController.h" #import "PrivacyViewController.h"
#import "DSTabBarController.h" #import "DSTabBarController.h"
#import "WXApi.h"
@interface AppDelegate () @interface AppDelegate () <WXApiDelegate>
@end @end
@implementation AppDelegate @implementation AppDelegate
...@@ -23,7 +24,37 @@ ...@@ -23,7 +24,37 @@
UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:[[PrivacyViewController alloc] init]]; UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:[[PrivacyViewController alloc] init]];
self.window.rootViewController = navi; self.window.rootViewController = navi;
[self initWeChat];
return YES; return YES;
} }
- (void)initWeChat {
// 在register之前打开log, 后续可以根据log排查问题
// [WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString *log) {
// NSLog(@"WeChatSDK: %@", log);
// }];
// 务必在调用自检函数前注册
[WXApi registerApp:WeChatAppID universalLink:@"https://help.wechat.com/sdksample/"];
// 调用自检函数
// [WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult* result) {
// NSLog(@"%@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion);
// }];
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
return [WXApi handleOpenURL:url delegate:self];
}
#pragma mark - WXApiDelegate
- (void)onReq:(BaseReq *)req {
DSLog(@"req:%@", req);
}
- (void)onResp:(BaseResp *)resp {
DSLog(@"resp:%@", resp);
}
@end @end
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "banner1.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "banner1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "banner1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "banner2.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "banner2@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "banner2@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "banner3.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "banner3@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "banner3@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "banner4.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "banner4@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "banner4@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
...@@ -14,6 +14,14 @@ FOUNDATION_EXTERN NSString * const UserServiceAgreement; ...@@ -14,6 +14,14 @@ FOUNDATION_EXTERN NSString * const UserServiceAgreement;
FOUNDATION_EXTERN NSString * const PrivacyPolicy; FOUNDATION_EXTERN NSString * const PrivacyPolicy;
FOUNDATION_EXTERN NSString * const PrivacyStatement; FOUNDATION_EXTERN NSString * const PrivacyStatement;
#pragma mark - 第三方平台配置
/** 微信开放平台AppID */
FOUNDATION_EXTERN NSString * const WeChatAppID;
/** 微信开放平台AppSecret */
FOUNDATION_EXTERN NSString * const WeChatAppSecret;
/** UNIVERSAL_LINK */
FOUNDATION_EXTERN NSString * const UNIVERSAL_LINK;
/// 常用常量值 /// 常用常量值
@interface DSConstUtil : NSObject @interface DSConstUtil : NSObject
@end @end
......
...@@ -11,5 +11,9 @@ NSString * const UserServiceAgreement = @"https://www.cbti.cn/sleep/user/agreeme ...@@ -11,5 +11,9 @@ NSString * const UserServiceAgreement = @"https://www.cbti.cn/sleep/user/agreeme
NSString * const PrivacyPolicy = @"https://www.cbti.cn/sleep/user/privacy"; NSString * const PrivacyPolicy = @"https://www.cbti.cn/sleep/user/privacy";
NSString * const PrivacyStatement = @"欢迎来到小梦睡眠,我们依据最新的监管要求更新了用户服务协议和隐私政策,请您知悉:\n 1.为提供相关基本功能及服务,我们会在您同意的前提下收集和使用必要的信息。\n2.使用本产品的过程中会请求相关权限,您可以选择是否授权该权限,也可以在隐私政策中了解详情。\n3.为确保相关功能服务的正常运行,您需要授权小梦睡眠APP获取设备Mac地址,您有权不同意该授权。\n4.未经您许可,小梦睡眠APP不会从第三方获取、提供或共享您的信息。\n可以点击阅读小梦睡眠APP用户服务协议和隐私政策的全部内容,感谢您的支持,欢迎问题反馈。"; NSString * const PrivacyStatement = @"欢迎来到小梦睡眠,我们依据最新的监管要求更新了用户服务协议和隐私政策,请您知悉:\n 1.为提供相关基本功能及服务,我们会在您同意的前提下收集和使用必要的信息。\n2.使用本产品的过程中会请求相关权限,您可以选择是否授权该权限,也可以在隐私政策中了解详情。\n3.为确保相关功能服务的正常运行,您需要授权小梦睡眠APP获取设备Mac地址,您有权不同意该授权。\n4.未经您许可,小梦睡眠APP不会从第三方获取、提供或共享您的信息。\n可以点击阅读小梦睡眠APP用户服务协议和隐私政策的全部内容,感谢您的支持,欢迎问题反馈。";
NSString * const WeChatAppID = @"wx4cdd4760092cdfdf";
NSString * const WeChatAppSecret = @"";
NSString * const UNIVERSAL_LINK = @"";
@implementation DSConstUtil @implementation DSConstUtil
@end @end
//
// WXApi.h
// 所有Api接口
//
// Created by Wechat on 12-2-28.
// Copyright (c) 2012年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "WXApiObject.h"
NS_ASSUME_NONNULL_BEGIN
#pragma mark - WXApiDelegate
/*! @brief 接收并处理来自微信终端程序的事件消息
*
* 接收并处理来自微信终端程序的事件消息,期间微信界面会切换到第三方应用程序。
* WXApiDelegate 会在handleOpenURL:delegate:中使用并触发。
*/
@protocol WXApiDelegate <NSObject>
@optional
/*! @brief 收到一个来自微信的请求,第三方应用程序处理完后调用sendResp向微信发送结果
*
* 收到一个来自微信的请求,异步处理完成后必须调用sendResp发送处理结果给微信。
* 可能收到的请求有GetMessageFromWXReq、ShowMessageFromWXReq等。
* @param req 具体请求内容,是自动释放的
*/
- (void)onReq:(BaseReq*)req;
/*! @brief 发送一个sendReq后,收到微信的回应
*
* 收到一个来自微信的处理结果。调用一次sendReq后会收到onResp。
* 可能收到的处理结果有SendMessageToWXResp、SendAuthResp等。
* @param resp具体的回应内容,是自动释放的
*/
- (void)onResp:(BaseResp*)resp;
@end
#pragma mark - WXApiLogDelegate
@protocol WXApiLogDelegate <NSObject>
- (void)onLog:(NSString*)log logLevel:(WXLogLevel)level;
@end
#pragma mark - WXApi
/*! @brief 微信Api接口函数类
*
* 该类封装了微信终端SDK的所有接口
*/
@interface WXApi : NSObject
/*! @brief WXApi的成员函数,向微信终端程序注册第三方应用。
*
* 需要在每次启动第三方应用程序时调用。
* @attention 请保证在主线程中调用此函数
* @param appid 微信开发者ID
* @param universalLink 微信开发者Universal Link
* @return 成功返回YES,失败返回NO。
*/
+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink;
/*! @brief 处理旧版微信通过URL启动App时传递的数据
*
* 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。
* @param url 微信启动第三方应用时传递过来的URL
* @param delegate WXApiDelegate对象,用来接收微信触发的消息。
* @return 成功返回YES,失败返回NO。
*/
+ (BOOL)handleOpenURL:(NSURL *)url delegate:(nullable id<WXApiDelegate>)delegate;
/*! @brief 处理微信通过Universal Link启动App时传递的数据
*
* 需要在 application:continueUserActivity:restorationHandler:中调用。
* @param userActivity 微信启动第三方应用时系统API传递过来的userActivity
* @param delegate WXApiDelegate对象,用来接收微信触发的消息。
* @return 成功返回YES,失败返回NO。
*/
+ (BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity delegate:(nullable id<WXApiDelegate>)delegate;
/*! @brief 检查微信是否已被用户安装
*
* @return 微信已安装返回YES,未安装返回NO。
*/
+ (BOOL)isWXAppInstalled;
/*! @brief 判断当前微信的版本是否支持OpenApi
*
* @return 支持返回YES,不支持返回NO。
*/
+ (BOOL)isWXAppSupportApi;
/*! @brief 判断当前微信的版本是否支持分享微信状态功能
*
* @attention 需在工程LSApplicationQueriesSchemes配置中添加weixinStateAPI
* @return 支持返回YES,不支持返回NO。
*/
+ (BOOL)isWXAppSupportStateAPI;
/*! @brief 获取微信的itunes安装地址
*
* @return 微信的安装地址字符串。
*/
+ (NSString *)getWXAppInstallUrl;
/*! @brief 获取当前微信SDK的版本号
*
* @return 返回当前微信SDK的版本号
*/
+ (NSString *)getApiVersion;
/*! @brief 打开微信
*
* @return 成功返回YES,失败返回NO。
*/
+ (BOOL)openWXApp;
/*! @brief 发送请求到微信,等待微信返回onResp
*
* 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型
* SendAuthReq、SendMessageToWXReq、PayReq等。
* @param req 具体的发送请求。
* @param completion 调用结果回调block
*/
+ (void)sendReq:(BaseReq *)req completion:(void (^ __nullable)(BOOL success))completion;
/*! @brief 收到微信onReq的请求,发送对应的应答给微信,并切换到微信界面
*
* 函数调用后,会切换到微信的界面。第三方应用程序收到微信onReq的请求,异步处理该请求,完成后必须调用该函数。可能发送的相应有
* GetMessageFromWXResp、ShowMessageFromWXResp等。
* @param resp 具体的应答内容
* @param completion 调用结果回调block
*/
+ (void)sendResp:(BaseResp*)resp completion:(void (^ __nullable)(BOOL success))completion;
/*! @brief 发送Auth请求到微信,支持用户没安装微信,等待微信返回onResp
*
* 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持SendAuthReq类型。
* @param req 具体的发送请求。
* @param viewController 当前界面对象。
* @param delegate WXApiDelegate对象,用来接收微信触发的消息。
* @param completion 调用结果回调block
*/
+ (void)sendAuthReq:(SendAuthReq *)req viewController:(UIViewController*)viewController delegate:(nullable id<WXApiDelegate>)delegate completion:(void (^ __nullable)(BOOL success))completion;
/*! @brief 测试函数,用于排查当前App通过Universal Link方式分享到微信的流程
注意1: 调用自检函数之前必须要先调用registerApp:universalLink接口, 并确认调用成功
注意2: 自检过程中会有Log产生,可以先调用startLogByLevel函数,根据Log排查问题
注意3: 会多次回调block
注意4: 仅用于新接入SDK时调试使用,请勿在正式环境的调用
*
* 当completion回调的step为WXULCheckStepFinal时,表示检测通过,Universal Link接入成功
* @param completion 回调Block
*/
+ (void)checkUniversalLinkReady:(nonnull WXCheckULCompletion)completion;
/*! @brief WXApi的成员函数,接受微信的log信息。byBlock
注意1:SDK会强引用这个block,注意不要导致内存泄漏,注意不要导致内存泄漏
注意2:调用过一次startLog by block之后,如果再调用一次任意方式的startLoad,会释放上一次logBlock,不再回调上一个logBlock
*
* @param level 打印log的级别
* @param logBlock 打印log的回调block
*/
+ (void)startLogByLevel:(WXLogLevel)level logBlock:(WXLogBolock)logBlock;
/*! @brief WXApi的成员函数,接受微信的log信息。byDelegate
注意1:sdk会弱引用这个delegate,这里可加任意对象为代理,不需要与WXApiDelegate同一个对象
注意2:调用过一次startLog by delegate之后,再调用一次任意方式的startLoad,不会再回调上一个logDelegate对象
* @param level 打印log的级别
* @param logDelegate 打印log的回调代理,
*/
+ (void)startLogByLevel:(WXLogLevel)level logDelegate:(id<WXApiLogDelegate>)logDelegate;
/*! @brief 停止打印log,会清理block或者delegate为空,释放block
* @param
*/
+ (void)stopLog;
@end
NS_ASSUME_NONNULL_END
//
// WechatAuthSDK.h
// WechatAuthSDK
//
// Created by 李凯 on 13-11-29.
// Copyright (c) 2013年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
enum AuthErrCode {
WechatAuth_Err_Ok = 0, //Auth成功
WechatAuth_Err_NormalErr = -1, //普通错误
WechatAuth_Err_NetworkErr = -2, //网络错误
WechatAuth_Err_GetQrcodeFailed = -3, //获取二维码失败
WechatAuth_Err_Cancel = -4, //用户取消授权
WechatAuth_Err_Timeout = -5, //超时
};
@protocol WechatAuthAPIDelegate<NSObject>
@optional
- (void)onAuthGotQrcode:(UIImage *)image; //得到二维码
- (void)onQrcodeScanned; //二维码被扫描
- (void)onAuthFinish:(int)errCode AuthCode:(nullable NSString *)authCode; //成功登录
@end
@interface WechatAuthSDK : NSObject{
NSString *_sdkVersion;
__weak id<WechatAuthAPIDelegate> _delegate;
}
@property(nonatomic, weak, nullable) id<WechatAuthAPIDelegate> delegate;
@property(nonatomic, readonly) NSString *sdkVersion; //authSDK版本号
/*! @brief 发送登录请求,等待WechatAuthAPIDelegate回调
*
* @param appId 微信开发者ID
* @param nonceStr 一个随机的尽量不重复的字符串,用来使得每次的signature不同
* @param timeStamp 时间戳
* @param scope 应用授权作用域,拥有多个作用域用逗号(,)分隔
* @param signature 签名
* @param schemeData 会在扫码后拼在scheme后
* @return 成功返回YES,失败返回NO
注:该实现只保证同时只有一个Auth在运行,Auth未完成或未Stop再次调用Auth接口时会返回NO。
*/
- (BOOL)Auth:(NSString *)appId
nonceStr:(NSString *)nonceStr
timeStamp:(NSString *)timeStamp
scope:(NSString *)scope
signature:(NSString *)signature
schemeData:(nullable NSString *)schemeData;
/*! @brief 暂停登录请求
*
* @return 成功返回YES,失败返回NO。
*/
- (BOOL)StopAuth;
@end
NS_ASSUME_NONNULL_END
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!