@@ -1,14 +0,0 @@ | |||||
#import "WXApi.h" | |||||
extern "C" { | |||||
void WeChatRegisterApp(const char* appId) { | |||||
NSString* nsAppId = [NSString stringWithUTF8String:appId]; | |||||
[WXApi registerApp:nsAppId universalLink:@"https://your.universal.link/"]; | |||||
} | |||||
bool WeChatIsInstalled() { | |||||
return [WXApi isWXAppInstalled]; | |||||
} | |||||
} |
@@ -1,33 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 598b5945b6a694c4e933e0fdba15e7fb | |||||
PluginImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 2 | |||||
iconMap: {} | |||||
executionOrder: {} | |||||
defineConstraints: [] | |||||
isPreloaded: 0 | |||||
isOverridable: 0 | |||||
isExplicitlyReferenced: 0 | |||||
validateReferences: 1 | |||||
platformData: | |||||
- first: | |||||
Any: | |||||
second: | |||||
enabled: 0 | |||||
settings: {} | |||||
- first: | |||||
Editor: Editor | |||||
second: | |||||
enabled: 0 | |||||
settings: | |||||
DefaultValueInitialized: true | |||||
- first: | |||||
iPhone: iOS | |||||
second: | |||||
enabled: 1 | |||||
settings: | |||||
AddToEmbeddedBinaries: false | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,8 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: ab7d26447dce21e44b07e6a60ad4e11a | |||||
folderAsset: yes | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,44 +0,0 @@ | |||||
<?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>AvailableLibraries</key> | |||||
<array> | |||||
<dict> | |||||
<key>BinaryPath</key> | |||||
<string>WechatOpenSDK.framework/WechatOpenSDK</string> | |||||
<key>LibraryIdentifier</key> | |||||
<string>ios-arm64</string> | |||||
<key>LibraryPath</key> | |||||
<string>WechatOpenSDK.framework</string> | |||||
<key>SupportedArchitectures</key> | |||||
<array> | |||||
<string>arm64</string> | |||||
</array> | |||||
<key>SupportedPlatform</key> | |||||
<string>ios</string> | |||||
</dict> | |||||
<dict> | |||||
<key>BinaryPath</key> | |||||
<string>WechatOpenSDK.framework/WechatOpenSDK</string> | |||||
<key>LibraryIdentifier</key> | |||||
<string>ios-arm64_x86_64-simulator</string> | |||||
<key>LibraryPath</key> | |||||
<string>WechatOpenSDK.framework</string> | |||||
<key>SupportedArchitectures</key> | |||||
<array> | |||||
<string>arm64</string> | |||||
<string>x86_64</string> | |||||
</array> | |||||
<key>SupportedPlatform</key> | |||||
<string>ios</string> | |||||
<key>SupportedPlatformVariant</key> | |||||
<string>simulator</string> | |||||
</dict> | |||||
</array> | |||||
<key>CFBundlePackageType</key> | |||||
<string>XFWK</string> | |||||
<key>XCFrameworkFormatVersion</key> | |||||
<string>1.0</string> | |||||
</dict> | |||||
</plist> |
@@ -1,17 +0,0 @@ | |||||
<?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>NSPrivacyAccessedAPITypes</key> | |||||
<array> | |||||
<dict> | |||||
<key>NSPrivacyAccessedAPIType</key> | |||||
<string>NSPrivacyAccessedAPICategoryUserDefaults</string> | |||||
<key>NSPrivacyAccessedAPITypeReasons</key> | |||||
<array> | |||||
<string>CA92.1</string> | |||||
</array> | |||||
</dict> | |||||
</array> | |||||
</dict> | |||||
</plist> |
@@ -1,167 +0,0 @@ | |||||
重要! | |||||
SDK2.0.5 | |||||
1. 支持模块化集成:XCFramework 头文件引用改为标准化格式 #import <WechatOpenSDK/WXApi.h>,解决路径冲突并支持 Swift/ObjC 混合开发 | |||||
2. 修复openWXApp偶现失败的问题 | |||||
SDK2.0.4 | |||||
1.增加privacy manifest文件 | |||||
2.修复跳微信时可能卡顿的问题 | |||||
SDK2.0.2 | |||||
1. 优化XCFramework打包方式 | |||||
SDK2.0.1 | |||||
1. SDK支持XCFramework | |||||
SDK2.0.0 | |||||
1. 分享能力支持内容防篡改校验 | |||||
SDK1.9.9 | |||||
1. 授权登录支持关闭自动授权 | |||||
2. 分享支持添加签名,防止篡改 | |||||
SDK1.9.7 | |||||
1. 适配CocoaPods | |||||
SDK1.9.6 | |||||
1. 适配iOS 16,减少读写剪切板 | |||||
SDK1.9.4 | |||||
1. 修复授权登录取消/拒绝时state字段没有带回 | |||||
SDK1.9.3 | |||||
1. 新增发起二维码支付能力 | |||||
SDK1.9.2 | |||||
1. 新增发起企微客服会话能力 | |||||
SDK1.9.1 | |||||
1. 音乐视频分享类型增加运营H5字段 | |||||
SDK1.8.9 | |||||
1. 增加音乐视频分享类型 | |||||
SDK1.8.8 | |||||
1. 增加游戏直播消息类型 | |||||
SDK1.8.7.1 | |||||
1. 修复Xcode11以下编译不通过 | |||||
SDK1.8.7 | |||||
1. 修复iPadOS,未安装微信的情况下,因为UA问题无法授权登录 | |||||
2. 修复未安装微信的情况下, 适配了UIScene的App因为UIAlertView Crash | |||||
3. 增加Universal Link检测函数 | |||||
SDK1.8.6.2 | |||||
1. 修改包含"UIWebView"字符的类名 | |||||
SDK1.8.6.1 | |||||
1.短信授权登录使用的UIWebview切换成WKWebview | |||||
SDK1.8.6 | |||||
1. 支持Universal Link拉起微信以及返回App | |||||
2. SDK移除MTA库 | |||||
SDK1.8.5 | |||||
1. 更换MTA库:取消对剪切板的访问, 防止和其他SDK竞争导致crash | |||||
2. NSMutableArray的MTA分类方法改名,减少命名冲突 | |||||
3. 不含支付功能版本移除非税支付和医保支付接口 | |||||
4. 分享音乐支持填写歌词和高清封面图 | |||||
SDK1.8.4 | |||||
1. 调整分享图片大小限制 | |||||
2. 新增openBusinessView接口 | |||||
SDK1.8.3 | |||||
1. SDK增加调起微信刷卡支付接口 | |||||
2. SDK增加小程序订阅消息接口 | |||||
3. 修复小程序订阅消息接口没有resp的问题 | |||||
SDK1.8.2 | |||||
1. SDK增加开发票授权 WXInvoiceAuthInsert | |||||
2. SDK增加非税接口 WXNontaxPay | |||||
3. SDK增加医保接口 WXPayInsurance | |||||
4. 更换MTA库 | |||||
SDK1.8.1 | |||||
1. SDK打开小程序支持指定版本(体验,开发,正式版) | |||||
2. SDK分享小程序支持指定版本(体验,开发,正式版) | |||||
3. SDK支持输出log日志 | |||||
SDK1.8.0 | |||||
1. SDK支持打开小程序 | |||||
2. SDK分享小程序支持shareTicket | |||||
SDK1.7.9 | |||||
1. SDK订阅一次性消息 | |||||
SDK1.7.8 | |||||
1 SDK分享小程序支持大图 | |||||
SDK1.7.7 | |||||
1 增加SDK分享小程序 | |||||
2 增加选择发票接口 | |||||
SDK1.7.6 | |||||
1. 提高稳定性 | |||||
1 修复mta崩溃 | |||||
2 新增接口支持开发者关闭mta数据统计上报 | |||||
SDK1.7.5 | |||||
1. 提高稳定性 | |||||
2. 加快registerApp接口启动速度 | |||||
SDK1.7.4 | |||||
1. 更新支持iOS启用 ATS(App Transport Security) | |||||
2. 需要在工程中链接CFNetwork.framework | |||||
3. 在工程配置中的”Other Linker Flags”中加入”-Objc -all_load” | |||||
SDK1.7.3 | |||||
1. 增强稳定性,适配iOS10 | |||||
2. 修复小于32K的jpg格式缩略图设置失败的问题 | |||||
SDK1.7.2 | |||||
1. 修复因CTTeleponyNetworkInfo引起的崩溃问题 | |||||
SDK1.7.1 | |||||
1. 支持兼容ipv6(提升稳定性) | |||||
2. xCode Version 7.3.1 (7D1014) 编译 | |||||
SDK1.7 | |||||
1. 支持兼容ipv6 | |||||
2. 修复若干问题增强稳定性 | |||||
SDK1.6.3 | |||||
1. xCode7.2 构建的sdk包。 | |||||
2. 请使用xCode7.2进行编译。 | |||||
3. 需要在Build Phases中Link Security.framework | |||||
4. 修复若干小问题。 | |||||
SDK1.6.2 | |||||
1、xCode7.1 构建的sdk包 | |||||
2、请使用xCode7.1进行编译 | |||||
SDK1.6.1 | |||||
1、修复armv7s下,bitcode可能编译不过 | |||||
2、解决warning | |||||
SDK1.6 | |||||
1、iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。 | |||||
受此影响,当你的应用在iOS 9中需要使用微信SDK的相关能力(分享、收藏、支付、登录等)时,需要在“Info.plist”里增加如下代码: | |||||
<key>LSApplicationQueriesSchemes</key> | |||||
<array> | |||||
<string>weixin</string> | |||||
</array> | |||||
<key>NSAppTransportSecurity</key> | |||||
<dict> | |||||
<key>NSAllowsArbitraryLoads</key> | |||||
<true/> | |||||
</dict> | |||||
2、开发者需要在工程中链接上 CoreTelephony.framework | |||||
3、解决bitcode编译不过问题 | |||||
SDK1.5 | |||||
1、废弃safeSendReq:接口,使用sendReq:即可。 | |||||
2、新增+(BOOL) sendAuthReq:(SendAuthReq*) req viewController : (UIViewController*) viewController delegate:(id<WXApiDelegate>) delegate; | |||||
支持未安装微信情况下Auth,具体见WXApi.h接口描述 | |||||
3、微信开放平台新增了微信模块用户统计功能,便于开发者统计微信功能模块的用户使用和活跃情况。开发者需要在工程中链接上:SystemConfiguration.framework,libz.dylib,libsqlite3.0.dylib。 |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 57b94465221ab4f42a18a19053e0fb81 | |||||
TextScriptImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,8 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: de497fb8101fb884ab9ec5c847af8441 | |||||
folderAsset: yes | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,34 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: fc98be07dcdc0be44802f3fd740fa9fb | |||||
folderAsset: yes | |||||
PluginImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 2 | |||||
iconMap: {} | |||||
executionOrder: {} | |||||
defineConstraints: [] | |||||
isPreloaded: 0 | |||||
isOverridable: 0 | |||||
isExplicitlyReferenced: 0 | |||||
validateReferences: 1 | |||||
platformData: | |||||
- first: | |||||
Any: | |||||
second: | |||||
enabled: 0 | |||||
settings: {} | |||||
- first: | |||||
Editor: Editor | |||||
second: | |||||
enabled: 0 | |||||
settings: | |||||
DefaultValueInitialized: true | |||||
- first: | |||||
iPhone: iOS | |||||
second: | |||||
enabled: 1 | |||||
settings: | |||||
AddToEmbeddedBinaries: false | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,231 +0,0 @@ | |||||
// | |||||
// 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 | |||||
typedef BOOL(^WXGrantReadPasteBoardPermissionCompletion)(void); | |||||
#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; | |||||
/* ! @brief 用于在iOS16以及以上系统上,控制OpenSDK是否读取剪切板中微信传递的数据以及读取的时机 | |||||
* 在iOS16以及以上系统,在SDK需要读取剪切板中微信写入的数据时,会回调该方法。没有实现默认会直接读取微信通过剪切板传递过来的数据 | |||||
* 注意: | |||||
* 1. 只在iOS16以及以上的系统版本上回调; | |||||
* 2. 不实现时,OpenSDK会直接调用读取剪切板接口,读取微信传递过来的数据; | |||||
* 3. 若实现该方法:开发者需要通过调用completion(), 支持异步,通知SDK允许读取剪切板中微信传递的数据, | |||||
* 不调用completion()则代表不授权OpenSDK读取剪切板,会导致收不到onReq:, onResp:回调,无法后续业务流程。请谨慎使用 | |||||
* 4. 不要长时间持有completion不释放,可能会导致内存泄漏。 | |||||
*/ | |||||
- (void)onNeedGrantReadPasteBoardPermissionWithURL:(nonnull NSURL *)openURL completion:(nonnull WXGrantReadPasteBoardPermissionCompletion)completion; | |||||
@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; | |||||
#ifndef BUILD_WITHOUT_PAY | |||||
/*! @brief 判断当前微信的版本是否支持二维码拉起微信支付 | |||||
* | |||||
* @attention 需在工程LSApplicationQueriesSchemes配置中添加weixinQRCodePayAPI | |||||
* @return 支持返回YES,不支持返回NO。 | |||||
*/ | |||||
+ (BOOL)isWXAppSupportQRCodePayAPI; | |||||
#endif | |||||
/*! @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 |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 3e20125d013b8b04580b7ef4a73cbd98 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 95155186bc99d6349aab610f10d57966 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,68 +0,0 @@ | |||||
// | |||||
// 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 |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 8dde9b17a4cf713409124d27b2681314 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,9 +0,0 @@ | |||||
// WechatOpenSDK.h | |||||
// | |||||
// Created by Wechat. | |||||
// Copyright (c) 2012年 Tencent. All rights reserved. | |||||
// | |||||
#import <WechatOpenSDK/WXApi.h> | |||||
#import <WechatOpenSDK/WXApiObject.h> | |||||
#import <WechatOpenSDK/WechatAuthSDK.h> | |||||
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 04da548748747ba4c8e3563620f7d6df | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,15 +0,0 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<plist version="1.0"> | |||||
<dict> | |||||
<key>CFBundleIdentifier</key> | |||||
<string>com.tencent.WechatOpenSDK</string> | |||||
<key>CFBundleVersion</key> | |||||
<string>1.0.0</string> | |||||
<key>CFBundleShortVersionString</key> | |||||
<string>1.0</string> | |||||
<key>MinimumOSVersion</key> | |||||
<string>12.0</string> | |||||
<key>CFBundleExecutable</key> | |||||
<string>WechatOpenSDK</string> | |||||
</dict> | |||||
</plist> |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 55c905ff183bebe45b0f81558df25f06 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,8 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 9129bdfd6de87a04ebd9dda3aedd096c | |||||
folderAsset: yes | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,5 +0,0 @@ | |||||
framework module WechatOpenSDK { | |||||
umbrella header "WechatOpenSDK.h" | |||||
export * | |||||
link "WechatOpenSDK" | |||||
} |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 6786f222fe61a484aa3e25961e3f8a7e | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 2f2e5cac1d4d77c4a900e0b795c3209e | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,8 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 5d775aa8a7f32234a8801397fcd4f7f6 | |||||
folderAsset: yes | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,34 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 5697b5e7ce103cd42a67b2dbd2b46e5d | |||||
folderAsset: yes | |||||
PluginImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 2 | |||||
iconMap: {} | |||||
executionOrder: {} | |||||
defineConstraints: [] | |||||
isPreloaded: 0 | |||||
isOverridable: 0 | |||||
isExplicitlyReferenced: 0 | |||||
validateReferences: 1 | |||||
platformData: | |||||
- first: | |||||
Any: | |||||
second: | |||||
enabled: 0 | |||||
settings: {} | |||||
- first: | |||||
Editor: Editor | |||||
second: | |||||
enabled: 0 | |||||
settings: | |||||
DefaultValueInitialized: true | |||||
- first: | |||||
iPhone: iOS | |||||
second: | |||||
enabled: 1 | |||||
settings: | |||||
AddToEmbeddedBinaries: false | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,8 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 64a237f10c2c0be4494096162033ac64 | |||||
folderAsset: yes | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,231 +0,0 @@ | |||||
// | |||||
// 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 | |||||
typedef BOOL(^WXGrantReadPasteBoardPermissionCompletion)(void); | |||||
#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; | |||||
/* ! @brief 用于在iOS16以及以上系统上,控制OpenSDK是否读取剪切板中微信传递的数据以及读取的时机 | |||||
* 在iOS16以及以上系统,在SDK需要读取剪切板中微信写入的数据时,会回调该方法。没有实现默认会直接读取微信通过剪切板传递过来的数据 | |||||
* 注意: | |||||
* 1. 只在iOS16以及以上的系统版本上回调; | |||||
* 2. 不实现时,OpenSDK会直接调用读取剪切板接口,读取微信传递过来的数据; | |||||
* 3. 若实现该方法:开发者需要通过调用completion(), 支持异步,通知SDK允许读取剪切板中微信传递的数据, | |||||
* 不调用completion()则代表不授权OpenSDK读取剪切板,会导致收不到onReq:, onResp:回调,无法后续业务流程。请谨慎使用 | |||||
* 4. 不要长时间持有completion不释放,可能会导致内存泄漏。 | |||||
*/ | |||||
- (void)onNeedGrantReadPasteBoardPermissionWithURL:(nonnull NSURL *)openURL completion:(nonnull WXGrantReadPasteBoardPermissionCompletion)completion; | |||||
@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; | |||||
#ifndef BUILD_WITHOUT_PAY | |||||
/*! @brief 判断当前微信的版本是否支持二维码拉起微信支付 | |||||
* | |||||
* @attention 需在工程LSApplicationQueriesSchemes配置中添加weixinQRCodePayAPI | |||||
* @return 支持返回YES,不支持返回NO。 | |||||
*/ | |||||
+ (BOOL)isWXAppSupportQRCodePayAPI; | |||||
#endif | |||||
/*! @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 |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 5c53b6dde448112469d97b0d76e6d8ab | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 90253fc0c667fdd4181681b93c84fcfa | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,68 +0,0 @@ | |||||
// | |||||
// 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 |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: a2467b599f2ffcb4cadff89ce2d8bc57 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,9 +0,0 @@ | |||||
// WechatOpenSDK.h | |||||
// | |||||
// Created by Wechat. | |||||
// Copyright (c) 2012年 Tencent. All rights reserved. | |||||
// | |||||
#import <WechatOpenSDK/WXApi.h> | |||||
#import <WechatOpenSDK/WXApiObject.h> | |||||
#import <WechatOpenSDK/WechatAuthSDK.h> | |||||
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 6ba095b82e969fe46b2fdaed479df105 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,15 +0,0 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<plist version="1.0"> | |||||
<dict> | |||||
<key>CFBundleIdentifier</key> | |||||
<string>com.tencent.WechatOpenSDK</string> | |||||
<key>CFBundleVersion</key> | |||||
<string>1.0.0</string> | |||||
<key>CFBundleShortVersionString</key> | |||||
<string>1.0</string> | |||||
<key>MinimumOSVersion</key> | |||||
<string>12.0</string> | |||||
<key>CFBundleExecutable</key> | |||||
<string>WechatOpenSDK</string> | |||||
</dict> | |||||
</plist> |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 9ff39027e8331254da6a2e59cde030f9 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,8 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 89e3b34a2a65c8b43b597f2b56cbd92d | |||||
folderAsset: yes | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,5 +0,0 @@ | |||||
framework module WechatOpenSDK { | |||||
umbrella header "WechatOpenSDK.h" | |||||
export * | |||||
link "WechatOpenSDK" | |||||
} |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: d252db7095d603643b4e9cc9069da759 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,7 +0,0 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 27350cc0ee482504f8f5ceda982c2dc1 | |||||
DefaultImporter: | |||||
externalObjects: {} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -159,7 +159,7 @@ MonoBehaviour: | |||||
m_HorizontalOverflow: 0 | m_HorizontalOverflow: 0 | ||||
m_VerticalOverflow: 0 | m_VerticalOverflow: 0 | ||||
m_LineSpacing: 1 | m_LineSpacing: 1 | ||||
m_Text: "\u5FAE\u4FE1\u767B\u5F55" | |||||
m_Text: "\u82F9\u679C\u767B\u5F55" | |||||
--- !u!1 &1268344539 | --- !u!1 &1268344539 | ||||
GameObject: | GameObject: | ||||
m_ObjectHideFlags: 0 | m_ObjectHideFlags: 0 | ||||
@@ -359,7 +359,19 @@ MonoBehaviour: | |||||
m_TargetGraphic: {fileID: 1419617484} | m_TargetGraphic: {fileID: 1419617484} | ||||
m_OnClick: | m_OnClick: | ||||
m_PersistentCalls: | m_PersistentCalls: | ||||
m_Calls: [] | |||||
m_Calls: | |||||
- m_Target: {fileID: 1375389041382900576} | |||||
m_TargetAssemblyTypeName: UILogin, Assembly-CSharp | |||||
m_MethodName: ClickYkLoginBtn | |||||
m_Mode: 1 | |||||
m_Arguments: | |||||
m_ObjectArgument: {fileID: 0} | |||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine | |||||
m_IntArgument: 0 | |||||
m_FloatArgument: 0 | |||||
m_StringArgument: | |||||
m_BoolArgument: 0 | |||||
m_CallState: 2 | |||||
--- !u!1 &1422810771 | --- !u!1 &1422810771 | ||||
GameObject: | GameObject: | ||||
m_ObjectHideFlags: 0 | m_ObjectHideFlags: 0 | ||||
@@ -373,7 +385,7 @@ GameObject: | |||||
- component: {fileID: 1422810774} | - component: {fileID: 1422810774} | ||||
- component: {fileID: 1422810773} | - component: {fileID: 1422810773} | ||||
m_Layer: 5 | m_Layer: 5 | ||||
m_Name: wxLoginButton | |||||
m_Name: IOSLoginButton | |||||
m_TagString: Untagged | m_TagString: Untagged | ||||
m_Icon: {fileID: 0} | m_Icon: {fileID: 0} | ||||
m_NavMeshLayer: 0 | m_NavMeshLayer: 0 | ||||
@@ -481,7 +493,19 @@ MonoBehaviour: | |||||
m_TargetGraphic: {fileID: 1422810774} | m_TargetGraphic: {fileID: 1422810774} | ||||
m_OnClick: | m_OnClick: | ||||
m_PersistentCalls: | m_PersistentCalls: | ||||
m_Calls: [] | |||||
m_Calls: | |||||
- m_Target: {fileID: 1375389041382900576} | |||||
m_TargetAssemblyTypeName: UILogin, Assembly-CSharp | |||||
m_MethodName: ClickIOSLoginBtn | |||||
m_Mode: 1 | |||||
m_Arguments: | |||||
m_ObjectArgument: {fileID: 0} | |||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine | |||||
m_IntArgument: 0 | |||||
m_FloatArgument: 0 | |||||
m_StringArgument: | |||||
m_BoolArgument: 0 | |||||
m_CallState: 2 | |||||
--- !u!1 &6550220962649801778 | --- !u!1 &6550220962649801778 | ||||
GameObject: | GameObject: | ||||
m_ObjectHideFlags: 0 | m_ObjectHideFlags: 0 | ||||
@@ -491,6 +515,7 @@ GameObject: | |||||
serializedVersion: 6 | serializedVersion: 6 | ||||
m_Component: | m_Component: | ||||
- component: {fileID: 4022389754359507868} | - component: {fileID: 4022389754359507868} | ||||
- component: {fileID: 1375389041382900576} | |||||
m_Layer: 5 | m_Layer: 5 | ||||
m_Name: UILogin | m_Name: UILogin | ||||
m_TagString: Untagged | m_TagString: Untagged | ||||
@@ -519,3 +544,15 @@ RectTransform: | |||||
m_AnchoredPosition: {x: 0, y: 0} | m_AnchoredPosition: {x: 0, y: 0} | ||||
m_SizeDelta: {x: 0, y: 0} | m_SizeDelta: {x: 0, y: 0} | ||||
m_Pivot: {x: 0.5, y: 0.5} | m_Pivot: {x: 0.5, y: 0.5} | ||||
--- !u!114 &1375389041382900576 | |||||
MonoBehaviour: | |||||
m_ObjectHideFlags: 0 | |||||
m_CorrespondingSourceObject: {fileID: 0} | |||||
m_PrefabInstance: {fileID: 0} | |||||
m_PrefabAsset: {fileID: 0} | |||||
m_GameObject: {fileID: 6550220962649801778} | |||||
m_Enabled: 1 | |||||
m_EditorHideFlags: 0 | |||||
m_Script: {fileID: 11500000, guid: f81c8429d45aeea4ca5b48d9e3874cc4, type: 3} | |||||
m_Name: | |||||
m_EditorClassIdentifier: |
@@ -1,6 +1,6 @@ | |||||
fileFormatVersion: 2 | fileFormatVersion: 2 | ||||
guid: 57e483072a253ea49858dec65fa0e4fe | |||||
DefaultImporter: | |||||
guid: 98a55e4f427b6054892457b0814e3921 | |||||
PrefabImporter: | |||||
externalObjects: {} | externalObjects: {} | ||||
userData: | userData: | ||||
assetBundleName: | assetBundleName: |
@@ -1,6 +1,6 @@ | |||||
fileFormatVersion: 2 | fileFormatVersion: 2 | ||||
guid: 4d28bcdc88c883f4f911363f0e960270 | |||||
DefaultImporter: | |||||
guid: 2fb0af67621e66a42b0f1d3aa6e2cb7e | |||||
PrefabImporter: | |||||
externalObjects: {} | externalObjects: {} | ||||
userData: | userData: | ||||
assetBundleName: | assetBundleName: |
@@ -685,6 +685,10 @@ PrefabInstance: | |||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName | propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName | ||||
value: UnityEngine.Object, UnityEngine | value: UnityEngine.Object, UnityEngine | ||||
objectReference: {fileID: 0} | objectReference: {fileID: 0} | ||||
- target: {fileID: 1422810771, guid: 1dc4bd4f76703a745a88a9eadaa73d03, type: 3} | |||||
propertyPath: m_Name | |||||
value: IOSLoginButton | |||||
objectReference: {fileID: 0} | |||||
- target: {fileID: 1422810773, guid: 1dc4bd4f76703a745a88a9eadaa73d03, type: 3} | - target: {fileID: 1422810773, guid: 1dc4bd4f76703a745a88a9eadaa73d03, type: 3} | ||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size | propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size | ||||
value: 1 | value: 1 | ||||
@@ -703,7 +707,7 @@ PrefabInstance: | |||||
objectReference: {fileID: 0} | objectReference: {fileID: 0} | ||||
- target: {fileID: 1422810773, guid: 1dc4bd4f76703a745a88a9eadaa73d03, type: 3} | - target: {fileID: 1422810773, guid: 1dc4bd4f76703a745a88a9eadaa73d03, type: 3} | ||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName | propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName | ||||
value: ClickWxLoginBtn | |||||
value: ClickIOSLoginBtn | |||||
objectReference: {fileID: 0} | objectReference: {fileID: 0} | ||||
- target: {fileID: 1422810773, guid: 1dc4bd4f76703a745a88a9eadaa73d03, type: 3} | - target: {fileID: 1422810773, guid: 1dc4bd4f76703a745a88a9eadaa73d03, type: 3} | ||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName | propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName | ||||
@@ -10,9 +10,9 @@ public class UILogin : UIBase | |||||
} | } | ||||
public override void OnClose() { } | public override void OnClose() { } | ||||
public void ClickWxLoginBtn() | |||||
public void ClickIOSLoginBtn() | |||||
{ | { | ||||
Debug.Log("WeChat Login Clicked"); | |||||
Debug.Log("IOS Login Clicked"); | |||||
} | } | ||||
public void ClickYkLoginBtn() | public void ClickYkLoginBtn() | ||||
@@ -0,0 +1,17 @@ | |||||
using System.Collections; | |||||
using System.Collections.Generic; | |||||
using UnityEngine; | |||||
public class UIMainMenu : UIBase | |||||
{ | |||||
public override void OnOpen(object param = null) | |||||
{ | |||||
} | |||||
public override void OnClose() { } | |||||
public void ClickModelButton(int model) | |||||
{ | |||||
UIManager.Instance.OpenUI<UIMainModel>(model); | |||||
} | |||||
} |
@@ -0,0 +1,11 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 2231b43f39d8eeb4f80721eb0a03572a | |||||
MonoImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 2 | |||||
defaultReferences: [] | |||||
executionOrder: 0 | |||||
icon: {instanceID: 0} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,12 @@ | |||||
using System.Collections; | |||||
using System.Collections.Generic; | |||||
using UnityEngine; | |||||
public class UIMainModel : UIBase | |||||
{ | |||||
public override void OnOpen(object param = null) | |||||
{ | |||||
} | |||||
public override void OnClose() { } | |||||
} |
@@ -0,0 +1,11 @@ | |||||
fileFormatVersion: 2 | |||||
guid: bdb1ca0a512f4a04a8032029552c9233 | |||||
MonoImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 2 | |||||
defaultReferences: [] | |||||
executionOrder: 0 | |||||
icon: {instanceID: 0} | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -1,5 +1,5 @@ | |||||
fileFormatVersion: 2 | fileFormatVersion: 2 | ||||
guid: b3792e453c9ea8749af7930a55a592b3 | |||||
guid: 67a6fe6f569908f4d8f9d66bb0ec4d9e | |||||
folderAsset: yes | folderAsset: yes | ||||
DefaultImporter: | DefaultImporter: | ||||
externalObjects: {} | externalObjects: {} |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 92e37e51c06bd9c4882c3aad34603938 | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 1100d13afc065c048aaace214063bd96 | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 136ba99379d63c0408b74a5e7c51a075 | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 5e67d0c3adf2b7f4697a608c36fc1f47 | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 7438ee51ee79ff6469b1211aa29c769e | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 0be8dcdcff9e1d44e9fef2cc4687220b | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 813b1e0b261673447806c8d6ad616d91 | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 4ff52c66db203ec4ca864a9057e83e00 | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 919b146f16fb29c43ac10ba1ff61858b | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |
@@ -0,0 +1,22 @@ | |||||
fileFormatVersion: 2 | |||||
guid: 1026429a91c898d49ae0789f0fc9375f | |||||
AudioImporter: | |||||
externalObjects: {} | |||||
serializedVersion: 6 | |||||
defaultSettings: | |||||
loadType: 0 | |||||
sampleRateSetting: 0 | |||||
sampleRateOverride: 44100 | |||||
compressionFormat: 1 | |||||
quality: 1 | |||||
conversionMode: 0 | |||||
platformSettingOverrides: {} | |||||
forceToMono: 0 | |||||
normalize: 1 | |||||
preloadAudioData: 1 | |||||
loadInBackground: 0 | |||||
ambisonic: 0 | |||||
3D: 1 | |||||
userData: | |||||
assetBundleName: | |||||
assetBundleVariant: |