aiwuyu_iOS_sdk 1.0.9

aiwuyu_iOS_sdk 1.0.9

yhl维护。



  • yhl

aiwuyu-iOS-sdk

一. SDK介绍

爱物语Web SDK是一套针对爱物语h5页面交互开发的工具,提供webview功能、渠道用户联合登录到爱物语平台、通过渠道app分享等功能。

二. 接入指南

  • 获取channelCode 爱物语平台会为每个接入渠道提供一个channelCode,用于标识渠道身份。请联系爱物语平台获取。

  • 集成方式 iOS 通过pod集成:在Podfile中添加source路径

    use_frameworks!
    pod 'aiwuyu_iOS_sdk'
    

    在info.plist文件中添加相机和相册白名单 NSCameraUsageDescription NSPhotoLibraryUsageDescription

    ///Swift:
    import aiwuyu_iOS_sdk
    
    ///OC:
    #import <aiwuyu_iOS_sdk-Swift.h>

    OC:例子 AwySDKDelegate

    ///实现AwySDKDelegate 协议方法例子
      @implementation AYSDKClass
      K_Shared(AYSDKClass)
    
      - (void)requestShareWithShareData:(AwyShareData *)shareData{
    
    
          NSString *title = shareData.title;
          NSString *content = shareData.content;
          NSString *url = shareData.shareUrl;
          NSString *iconUrl = shareData.imageUrl;
    
    
          [AYShareController newsShareToShowWithUrlStr:url title:title content:content thumbUrl:iconUrl shareType:@"" miniProgram:@""];
    
          return ;
      }
    
      - (BOOL)isAppAuth{
          return UserManager.isLogin;
      }
      - (void)requestAuthWithNav:(UINavigationController * _Nonnull)nav{
          [nav pushViewController:[[JLoginOTPController alloc] init] animated:YES];
      }
      - (void)requestUnionAuthInfoWithAuthInfo:(void (^ _Nullable)(NSString * _Nonnull))authInfo{
          NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:@{@"channelCode":@"aiwuyu-app",@"loginDate":DeviceTool.currentDate}];
    
          if (UserManager.userId) {
              dict[@"uid"] = UserManager.userId;
          }
    
    
          [NetworkManager requestWithPath:@"sdkMockApi" name:@"unionLogin" params:dict success:^(NSDictionary * _Nullable responseObject) {
              NSLog(@"responseObject===%@",responseObject);
    
              authInfo(responseObject[@"channelReq"]);
          } failure:^(NSDictionary * _Nullable responseObject, NSError * _Nonnull error) {
              authInfo(@"");
          }];
      }
    
    
      @end

    AwySDKConfig

    ///实现AwySDKConfig 协议例子
    @implementation AYSDKConfig
    
      - (BOOL)logEnable{
          return YES;
      }
    
      - (BOOL)isEnvironmentDebug{
          return YES;
      }
    
      - (BOOL)enableContentShare{
          return YES;
      }
    
      - (BOOL)enableUnionAuth{
          return YES;
      }
    
      - (BOOL)enableCallAuthInterface{
          return YES;
      }
    
      @end
         ///初始化配置 加进入web
         [AwySDK initializeWithChannelCode:@"aiwuyu-app" delegate:[AYSDKClass shared]];
          AYSDKConfig *config = [[AYSDKConfig alloc] init];
          [AwySDK setConfigWithConfig:config];
          [AwySDK openUrlWithUrlStr:@"https://test-miniprogram-h5.aiwuyu.com/awy/#/index"];

三. API

1. 入口类 AwySDK

1. 初始化方法

Swift: AwySDK.initialize(channelCode: <#T##String#>, delegate: <#T##AwySDKDelegate?#>) OC

[AwySDK initializeWithChannelCode:<#(NSString * _Nonnull)#> delegate:<#(id<AwySDKDelegate> _Nullable)#>]

建议在AppDelegate中初始化SDK,channelCode:渠道标识符 delegate:您必须实现的AwySDKDelegate代理方法

2. SDK添加配置信息 AwySDKConfig

通过AwySDK的类方法配置,类方法需要一个遵守AwySDKConfig的类。 func setConfig(config:AwySDKConfig )

3. 使用SDK打开H5链接

Swift: AwySDK.openUrl(urlStr: "")

OC

[AwySDK openUrlWithUrlStr:@"url"]

2. 配置类AwySDKConfig

AwySDKConfig协议介绍:

///渠道App是否需要打印log
func logEnable() -> Bool
///环境,true:prd, false:test
func isEnvironmentDebug() -> Bool
///是否支持调用分享
func enableContentShare() -> Bool
///是否支持联合登录
func enableUnionAuth() -> Bool
///联合登录是否支持调起登录页面
func enableCallAuthInterface() -> Bool

3. SDK回调渠道app接口 AwySDKDelegate

1. 签名回调 需要渠道APP 请求 嵌入“爱物语服务器-SDK”的服务器

Swift

func requestUnionAuthInfo(authInfo:((_ str:String)->Void)?)

OC

- (void)requestUnionAuthInfoWithAuthInfo:(void (^)(NSString * _Nonnull))authInfo

SDK向渠道app请求联合登录参数

渠道方需要使用爱物语server sdk生成联合登录参数,并通过block异步传递给爱物语sdk。

authInfo:在server中获取的登录参数,通过block回调传给sdk。

在用户点击登录按钮时,需要在app中调用该方法,并将获取的authInfo通过参数传入。

2. 请求分享

Swift

func requestShare(shareData:AwyShareData)

OC

- (Void)requestShareWithShareData:(AwyShareData *)shareData

SDK向渠道app请求分享

AwyShareData:返回SDK要分享的信息(分享标题、内容、链接、图片链接) 返回值:true表示支持通过渠道app分享内容,false表示不支持分享内容

其中AwyShareData:有获取图片Data格式方法 Swift

func downloadImage(imageBack:@escaping ((_ imageData:Data?)->Void))

OC

- (void)downloadImage:(void (^ _Nullable)(NSData * _Nullable))imageBack

如果imageData为空,下载图片出错

3. 返回是否登录
func isAppAuth()->Bool

需要实时返回渠道APP,是否已经登录

4. 跳转渠道APP 登录页
func requestAuth(nav:UINavigationController)

返回 SDK 的UINavigationController 跳转登录页需要用到

四. 联合登录整体流程

  • 爱物语SDK判断渠道App是否登录,如果未登录调用渠道App登录页面

  • 当渠道App登录后,爱物语SDK向渠道app请求联合登录参数

  • 渠道app向渠道后台请求联合登录参数

  • 渠道后台收到联合登录请求后,调用爱物语server sdk生成联合登录参数,并下发给渠道app

  • 渠道app再将参数通过接口回调,传递给sdk,如果获取失败,返回给sdk空

  • sdk使用联合登录参数请求爱物语平台登录

  • 登录完成