我的应用

产品下载

产品文档

版本历史

认证信息

Android版

IOS版

Web版

Windows版

Mac版

阅读SDK集成文档Android版

1.集成前准备

1.1.集成前准备流程示意图

1.2.获取应用的授权信息

授权信息也即是appId, appKey 的信息。

获取方式如下图:

2.Android版SDK包结构介绍

ReaderDemo是当前版本的演示程序工程。

ReaderSDK是SDK的内容目录:

  • AndroidManifest.xml
    SDK接入时需要的清单内容文件。

  • assets
    SDK运行时需要动态加载的资源。

  • libs
    SDK的程序包。

  • res
    SDK的UI静态资源。

3.Android版SDK接入

3.1.配置及资源接入
3.1.1.清单导入

清单内容全部导入到当前APP清单文件中。

3.1.2.配置ReaderApplication

将com.haoyang.reader.page.ReaderApplication配置到清单文件中的applicatioin的name属性上。

3.1.3.Android版SDK导入文件

将SDK目录下的libs、res、assert文件夹中的内容分别拷贝到当前APP的对应目录下。

3.2.Android版SDK代码接入

SDK中需要开发者关注的类都在下边这个包中:

com.haoyang.reader.sdk

SDK中所有和开发者相关的交互都是通过下边这个类完成, 是个单例模式的类 :

com.haoyang.reader.sdk.ReaderSDK

3.2.1.初始化SDK

开发者需要在点击按钮启动阅读器的代码中先执行SDK的初始化工作

ReaderSDK readerSDK = ReaderSDK.getInstance();
SDKParameterInfo parameter = new SDKParameterInfo();
parameter.appId = "703127";
parameter.appKey = "cc9428654e9b4935ab65d9cb68fbdeb4";
parameter.userId =  "123"; // 接入时需提供应用下唯一的。否则会出现数据错乱。
Parameter.userName = "西门吹雪";
readerSDK.initSDK(this, parameter);
  • 代码中把前边建立应用成功后拿到的appId和appKey填入到此处。

  • userId和userName 当前读者的唯一标识和读者的名字。SDK会通过userId和电子书唯一标识来存储用户生成的数据。

  • this是当前的上下文件,这里一般传当前activity即可。

3.2.2.设置SDK参数

参见SDK API Doc节。

3.2.3.启动SDK

初始化SDK并设置参数结束之后调用readerSDK.startReader 这个方法即可启动阅读器,代码如下:

    try{
        readerSDK.startReader(MainActivity.this,  book,
        ReaderSDK.FilePathType.Local_File);
        }catch (Exception e){
        e.printStackTrace();
    }
    
  • MainActivity.this是当前上下文,也可以理解是当前的activity.

  • book 是电子书对象。描述当前要阅读的电子书信息。 book对象中最重要的两个属性id和path.这两个是必需有的。 Id是阅读SDK能够记录当前用户生成的数据。比如笔记、重点之类的信息。 Path是告诉阅读SDK要阅读的电子书在那个位置。

  • ReaderSDK.FilePathType.Local_File告诉阅读SDK当前的电子书在本地。

4.SDK API Doc

4.1 设置阅读区上下边距

方法名: public void setUpDownSpace(int upDownSpace)

  参数:  upDownSpace 阅读区与屏幕的上边和下边之间的距离值。
4.2 设置阅读区左右边距。

方法名: public void setLeftRightSpace(int leftRightSpace)

  参数:  leftRightSpace 阅读区与屏幕的左边和右边之间的距离值。 
4.3 设置默认行间距

方法名: public void setLineSpacing(LineSpace lineSpace)

  参数:  lineSpace 阅读器中每行文字之间的间距。 
  注意事项: 此方法只有在第一次安装时才会起作用, 卸载app后重装也会生效。
  		  因为读者也可能会更改行间距,如果读者更改,那么就要以读者的更改为主。
					

相关类:

  com.haoyang.reader.sdk.LineSpace
  		行间距定义的枚举.
4.4 设置文字划线时线条粗细

方法名: public void setStressLineThickness(int value)

  参数:  value 线条粗细值。 
4.5 设置文字划线时线条颜色

方法名: public void setStressLineColor(ColorService colorService)

  参数:  colorService 线条颜色对象。 

参数类:

  com.haoyang.reader.sdk.ColorService
  		颜色对象。
4.6 设置屏幕亮度

方法名: public void setScreenBrightness(int screenBrightness)

  注意事项: 给亮度设置个初始值,设置一次之后,在设置其它值就不会生效了。原因参考设置默认行高的接口
					
4.7 设置阅读器初始翻页模式

方法名: public void setAnimationType(AnimationType animationType)

参数说明: animationType : 指定的翻页模式,AnimationType是个枚举类型。

参数类:

com.haoyang.reader.sdk.AnimationType
 翻页模式的枚举,有以下几种翻页模式:
	NoneAnimation   : 没有翻页效果。
	CurlAnimation   : 仿真翻页。
	SlideAnimation  : 覆盖翻页。
	ScrollAnimation : 滚动翻页。
4.8 设置阅读器翻页动画的速度

方法1: public void setAnimationSpeed(int animationSpeed)

方法2: public void setAnimationSpeedFactor(float animationSpeedFactor)

 setAnimationSpeed : 设置翻页动画的速度,animationSpeed参数是动画每次移动的距离。
 setAnimationSpeedFactor: 设置翻页动画速度不断加快的因子。翻页动画不断加快,是通过这个参数进行调节的
4.9 设置阅读器显示目录

方法名: public void setShowCatalog()

4.10 设置阅读器不显示目录

方法名: public void setHideCatalog()

4.11 设置阅读器是否显示电池

方法名: public void setShowBattery(boolean showBattery)

  参数:  showBattery true: 显示电池, false :不显示电池。 
4.12 设置阅读器是否显示页码

方法名: public void setShowPageNumber(boolean showPageNumber)

  参数:  showPageNumber true: 显示页码, false :不显示页码。 
4.13 设置阅读器是否显示页码

方法名: public void setShowTime(boolean showTime)

  参数:  showTime true: 显示时间, false :不显示时间。 
4.14 设置阅读器是否开启分享功能

方法名: public void setShareEnable(boolean enable)

  参数:  enable true: 开启, false :关闭。 
4.15 设置阅读器是否开启切换字体功能

方法名: public void setTypefaceSwitchEnable(boolean enable)

  参数:  enable true: 开启, false :关闭。 
4.16 设置阅读器默认字体

方法名: public void setDefaultTypeface(Typeface typeface)

4.17 开发者自定义功能接口说明

接口名: com.haoyang.reader.sdk.ReaderSDK.SDKInteractive

作用: 定义了开发者能够自己实现的一些功能接口. 

接口方法说明:

  void share(ShareEntity shareEntity);
  分享功能的实现方法,开发者开启这个方法之后,当有读者执行分享时会调用这个方法,
  将分享的内容传过来,开发者需要在这个方法中实现分享的功能。
  void share(ShareEntity shareEntity);
  分享功能的实现方法,开发者开启这个方法之后,当有读者执行分享时会调用这个方法,
  将分享的内容传过来,开发者需要在这个方法中实现分享的功能。
  注意事项: 分享功能生效需要先开启这个功能,调用setShareEnable接口
					
  void typefaceSwitch();
  切换字体功能的实现方法,开发者开启这个方法之后,当有读者执行切换字体时会调用这个方法。
  
  注意事项: 自定义切换字体功能生效需要先开启这个功能,调用setTypefaceSwitchEnable接口
  		读者选择完成字体后,需要调用setRunningTypeFace接口,将字体文件路径传给阅读器,这样就可以生效了。
  void feedback(FeedBack feedBack);
  意见反馈内容传给开发者功能的实现方法。当读者有意见需要反馈的时候,阅读器SDK会将反馈内容通过这个方法传给开发者,
  如果开发者关心意见反馈内容,需要实现这个方法来进行保存,否则做个空实现就行了。
  void toolsBar(RelativeLayout relativeLayout);
  单击阅读器界面弹出的顶部工具栏, 去除了返回按钮的区域,其它区域都是提供给开发者进行自定义功能的地方。
  开发者在这个域的UI, 需要放到参数中指定的布局对象中
4.18 设置阅读器样式

方法名: public void setPageStyle(List pageStyleList)

  参数:  pageStyleList是阅读器样式列表,开发者把每种样式定义好,存入这个List中. 
  作用:  设置阅读器中包含的每种样式,阅读器的背景切换功能的数据源就是通过这个方法得到的。

相关类:

  com.haoyang.reader.sdk.PageStyle.BackgroundFillMode
  		背景模式的枚举。是用来指定每种样式中背景类型。
				
		backgroundColor: 	当前的背景以指定的色值进行填充。
		tileMirror:			当前的背景是以指定的图片平铺填充。
		fullscreen: 		当前的背景是以指定的图片全屏填充。
  com.haoyang.reader.sdk.PageStyle.NightDayMode
		指定当前的样式是夜间模式/白天模式/普通模式。读者进行白天和夜间模式切换的时候通过这个来指定
		
		none: 	普通模式, 指当前样式即不是夜间模式也不是白天模式
		night: 	夜间模式,指定当前样式是夜间模式,读者切换到夜间模式的时候,就是切换到当前样式。
		day: 	白天模式,指定当前样式是白天模式,读者切换到白天模式的时候,就是切换到当前样式。
  com.haoyang.reader.sdk.PageStyle
		阅读器样式类:

		styleName			: 样式名,每个样式都需要指定一个样式中唯一的名字。
		backgroundFillMode	: 当前这个样式背景的填充模式。
		backgroundValue		: 背景值,这个值是根据填充模式定的,如果填充模式是backgroundColor, 则值是色值;
							  如果填充模式是tileMirror或fullscreen, 则值就是图片的路径,图片文件需要存放在Assert目录中。
		nightDayMode		: 指定当前样式是白天模式还是夜间模式。
		textColor			: 当前样式中指定文字色值。
		catalogColor		: 当前样式指定页面中目录文字色值。
		pageNumberColor		: 当前样式指定页面中页码文字色值。
		timeColor			: 当前样式指定页面中时间文字色值。

示例代码:

// 阅读器文字颜色,与背景资源是一一对应的。
String[] wordColorArray = { "0x372d21", "0xb6bbbe", "0x322b23",
				"0x444444", "0x444444", "0x444444", "0x444444", "0x342d25",
				"0x293a27", "0x000200", "0x5f707a", "0x96938e" }; 

String[] wallPaperArray = { "wallpapers/background_2.jpg",
				"wallpapers/background_1.jpg", "wallpapers/background_3.jpg",
				"wallpapers/background_4.jpg", "wallpapers/background_5.jpg",
				"wallpapers/background_6.jpg", "wallpapers/background_7.jpg",
				"0xf6efe7", "0xceefd0", "0x596476", "0x001d28", "0x39312f" }; // 阅读器背景资源。

BackgroundFillMode[] wallPaperType = { BackgroundFillMode.fullscreen,
				BackgroundFillMode.tileMirror, BackgroundFillMode.fullscreen,
				BackgroundFillMode.fullscreen, BackgroundFillMode.fullscreen,
				BackgroundFillMode.fullscreen, BackgroundFillMode.fullscreen,
				BackgroundFillMode.backgroundColor,
				BackgroundFillMode.backgroundColor,
				BackgroundFillMode.backgroundColor,
				BackgroundFillMode.backgroundColor,
				BackgroundFillMode.backgroundColor }; // 阅读器背景资源类型。

NightDayMode[] nightDayMode = { NightDayMode.day, NightDayMode.none,
				NightDayMode.none, NightDayMode.none, NightDayMode.none,
				NightDayMode.none, NightDayMode.none, NightDayMode.none,
				NightDayMode.none, NightDayMode.none, NightDayMode.none,
				NightDayMode.night }; // 定义每种背景及文字是夜间模式还是白天模式。

List pageStyleList = new ArrayList();

for (int index = 0; index < wallPaperArray.length; index++) { // 生成样式对象。

			String background = wallPaperArray[index];

			PageStyle pageStyle = new PageStyle();
			pageStyle.styleName = background;
			pageStyle.backgroundValue = background;
			pageStyle.backgroundFillMode = wallPaperType[index];
			pageStyle.textColor = wordColorArray[index];
			pageStyle.catalogColor = wordColorArray[index];
			pageStyle.pageNumberColor = wordColorArray[index];
			pageStyle.timeColor = wordColorArray[index];
			pageStyle.nightDayMode = nightDayMode[index];

			pageStyle.source = Source.DEVELOPER;
			pageStyleList.add(pageStyle);
} // end for index

// 设置默认的样式,这个方法需要在setPageStyle方法之前执行
readerSDK.setCurrentPageStyle("0x596476");

// 将样式对象列表传给阅读器,阅读器根据这个来定义背景切换。
// 如果在之前没有执行setCurrentPageStyle这个方法,setPageStyle就会把第一个做为默认样式
readerSDK.setPageStyle(pageStyleList); 

					
					
					
					
					
					
					
4.19 设置阅读器默认样式

方法名: public void setCurrentPageStyle(String styleName)

  参数:  styleName 样式名。 
  作用:  设置阅读器默认样式。这个方法需要在setPageStyle方法执行之前执行。
					

阅读SDK集成文档IOS版

1.集成前准备

1.1.集成前准备流程示意图

1.2.获取应用的授权信息

2.iOS版SDK文件夹结构

iOSReaderDemo是当前版本的演示程序工程。

iOSReaderSDK是SDK的内容目录:

  • ReaderPlatform.framework
    是SDK的framework库文件

  • ReaderPlatformResource.bundle
    是SDK的资源文件。

3.iOS版SDK接入

3.1.导入framework文件

将ReaderPlatform.framework文件导入到项目中. 如下图:

3.2.导入资源文件

将ReaderPlatformResource.bundle文件导入到项目中. 如下图:

3.3.导入其它framework文件

3.4.iOS版SDK代码接入

SDK中需要开发者关注的类都在ReaderSDK.h这个头文件中

3.4.1.类介绍

ReaderSDK
是个单例模式类,所有与阅读SDK交互的方法都是在这个类中定义的

BookHY类
是阅读SDK阅读的电子书描述文件,包括电子书名、编号、路径等等。

SDKInteractive类
是需要开发者去实现的功能定义。
开发者能实现的功能有:

  • 分享
  • 选择字体
3.4.2.导入头文件

在启动阅读器的类中导入SDK的头文件。如下:

#import <ReaderPlatform/ReaderSDK.h>
3.4.3.初始化SDK

开发者需要在点击按钮启动阅读器的代码中先执行SDK的初始化工作

NSString *appId = @"850489";
NSString *appKey = @"76652ae943e0491fb9751df1029d9b7a";
NSString *userId = @"123";
NSString *userName = @"1234";

[[ReaderSDK defaultReaderSDK] SDKInit:appId appKey:appKey userId:userId userName:userName];
  • 代码中把前边建立应用成功后拿到的appId和appKey填入到此处。
  • userId和userName 当前读者的唯一标识和读者的名字。SDK会通过userId和电子书唯一标识来存储用户生成的数据。
3.4.4.设置SDK参数

参见《SDK API Doc》节。

3.4.5.启动SDK

初始化SDK并设置参数结束之后调用readerSDK的startReader 这个方法即可启动阅读器,代码如下:

[[ReaderSDK defaultReaderSDK] startReader:book controller:self];
  • book 是电子书对象。描述当前要阅读的电子书信息。
    book对象中最重要的两个属性id和path.这两个是必需有的。
    Id是阅读SDK能够记录当前用户生成的数据。比如笔记、重点之类的信息。
    Path是告诉阅读SDK要阅读的电子书在那个位置。
  • self是当前controller对象。

4.SDK 接口说明

4.1 设置阅读器字号切换的最小值

方法名: -(void)setStartTextSize:(int)startTextSize

 方法说明 : 设置字号切换的初始值。切换时切换到每个档的字号是事先计算出来的,
	计算方法为: startTextSize + 5, startTextSize + 10, startTextSize + 15......
	当执行这个方法的时候,用参数startTextSize的值计算出每个档的字号值。执行时查看当前
	阅读器是否设置了初始字号,也就是当前显示文字使用的字号。如果没有设置,那么就用中间档
	的字号做为当前字号.
4.2 设置阅读器行高切换的最小值

方法名: -(void)setStartLineSpace:(int)startLineSpace

 方法说明 : 设置计算行高切换每个档时使用的初始值。切换时切换到每个档的行高是事先计算出来的,
	计算方法为: startLineSpace + 5, startLineSpace + 10, startLineSpace + 15......
	当执行这个方法的时候,用参数startLineSpace的值计算出每个档的行高。执行时查看当前
	阅读器是否设置了初始行高,也就是当前显示文字使用的行高。如果没有设置,那么就用中间档
	的值做为当前每一行文字的行高.
4.3 设置阅读区的上下边距

方法名: -(void)setUpDownSpace:(int)upDownSpaceValue

 方法说明 : 设置阅读区与设备的上下边的距离。
4.4 设置阅读区的左右边距

方法名: -(void)setLeftRigthSpace:(int)value

 方法说明 : 设置阅读区与设备的左右边的距离。
4.5 设置是否开启分享功能

方法名: -(void)setEnableShare:(BOOL)enableShare

 方法说明 : enableShare: YES 开启,NO 关闭。
4.6 设置是否开启字体切换功能

方法名: -(void)setEnableTypeface:(BOOL)enableTypeface

 方法说明 : enableTypeface: YES 开启,NO 关闭。
4.7 更新切换字体

方法名: -(void)setRunningTypeFace:(NSString*)typeFaceFilePath

 方法说明 : typeFaceFilePath参数是字体文件路径。这个方法是当读者切换字体时,
		先中了某个字体后,开发者调用这个方法来应用这个选中的字体。
4.8 设置开发者实现功能接口

方法名: -(void)setSDKInteractive:(id ) sdkInteractive

 方法说明 : 阅读器给开发者提供了一些可以自定义的功能接口, 每个功能的定义在SDKInteractive协议中,
	开发者想自定义时,需要实现SDKInteractive这个协议。
4.9 开发者自定义功能接口说明

接口名: SDKInteractive

作用: 定义了开发者能够自己实现的一些功能接口. 

接口方法说明:

  -(void)share:(ShareEntity*)shareEntity navigationController:(UINavigationController*)navigationController;
  分享功能的实现方法,开发者开启这个方法之后,当有读者执行分享时会调用这个方法,
  将分享的内容传过来,开发者需要在这个方法中实现分享的功能。
  -(void)typefaceSwitch:(UINavigationController*)navigationController;
  切换字体功能的实现方法,开发者开启这个方法之后,当有读者执行切换字体时会调用这个方法。
  
  注意事项: 自定义切换字体功能生效需要先开启这个功能,调用setEnableTypeface接口
  		读者选择完成字体后,需要调用setRunningTypeFace接口,将字体文件路径传给阅读器,这样就可以生效了。
  -(void)feedback:(FeedBack*)feedBack;
  意见反馈内容传给开发者功能的实现方法。当读者有意见需要反馈的时候,阅读器SDK会将反馈内容通过这个方法传给开发者,
  如果开发者关心意见反馈内容,需要实现这个方法来进行保存。
  -(void)toolsBar:(UIView*)toolsView;
  单击阅读器界面弹出的顶部工具栏, 去除了返回按钮的区域,其它区域都是提供给开发者进行自定义功能的地方。
  开发者在这个域的UI, 需要放到参数中指定的布局对象中
4.10 设置阅读器样式

方法名: -(void)setPageStyle:(NSArray*)pageStyleList;

  参数:  pageStyleList是阅读器样式数组,开发者把每种样式定义好,存入这个pageStyleList中. 
  作用:  设置阅读器中包含的每种样式,阅读器的背景切换功能的数据源就是通过这个方法得到的。

相关类:

  BackgroundFillMode
  		背景模式的枚举。是用来指定每种样式中背景类型。
				
		backgroundColor: 	当前的背景以指定的色值进行填充。
		fullscreen: 		当前的背景是以指定的图片全屏填充。
  NightDayMode
		指定当前的样式是夜间模式/白天模式/普通模式。读者进行白天和夜间模式切换的时候通过这个来指定
		
		NONE_READER: 	普通模式, 指当前样式即不是夜间模式也不是白天模式
		NIGHT_READER: 	夜间模式,指定当前样式是夜间模式,读者切换到夜间模式的时候,就是切换到当前样式。
		DAY_READER: 	白天模式,指定当前样式是白天模式,读者切换到白天模式的时候,就是切换到当前样式。
  ReaderPageStyle
		阅读器样式类:

		styleName			: 样式名,每个样式都需要指定一个样式中唯一的名字。
		backgroundFillMode	: 当前这个样式背景的填充模式。
		backgroundValue		: 背景值,这个值是根据填充模式定的,如果填充模式是backgroundColor, 则值是色值;
							  如果填充模式是fullscreen, 则值就是图片的路径。
		nightDayMode		: 指定当前样式是白天模式还是夜间模式。
		textColor			: 当前样式中指定文字色值。
		catalogColor		: 当前样式指定页面中目录文字色值。
		pageNumberColor		: 当前样式指定页面中页码文字色值。
		timeColor			: 当前样式指定页面中时间文字色值。

示例代码:

	NSArray *wallPaperArray = [NSArray arrayWithObjects:@"background_2.jpg",@"background_1.jpg",@"background_3.jpg", @"background_4.jpg", @"background_5.jpg", @"background_6.jpg", @"background_7.jpg", @"0xf6efe7", @"0xceefd0", @"0x596476", @"0x001d28", @"0x39312f", nil];
    
    BackgroundFillMode wallPaperType[] = { Fullscreen,
        Fullscreen, Fullscreen,
        Fullscreen, Fullscreen,
        Fullscreen, Fullscreen,
        BackgroundColor,
        BackgroundColor,
        BackgroundColor,
        BackgroundColor,
        BackgroundColor };
    
    NSArray * wordColorArray = [NSArray arrayWithObjects:@"0x372d21", @"0xb6bbbe", @"0x322b23",
                                @"0x444444", @"0x444444", @"0x444444", @"0x444444", @"0x342d25",
                                @"0x293a27", @"0x000200", @"0x5f707a", @"0x96938e", nil];
    
    NightDayMode nightDayModeArray[] = {DAY_READER, NONE_READER, NONE_READER, NONE_READER, NONE_READER, NONE_READER, NONE_READER, NONE_READER, NONE_READER, NONE_READER, NONE_READER, NIGHT_READER};
    
    NSMutableArray *pageStyleList = [NSMutableArray array];
    for (int index = 0; index < [wallPaperArray count]; index++) {
        
        NSString *background = wallPaperArray[index];
        
        ReaderPageStyle *pageStyle = [[ReaderPageStyle alloc] init];
        
        pageStyle.styleName = background;
        pageStyle.backgroundValue = background;
        pageStyle.backgroundFillMode = wallPaperType[index];
        
        pageStyle.nightDayMode = nightDayModeArray[index];
        
        pageStyle.textColor = wordColorArray[index];
        pageStyle.catalogColor = wordColorArray[index];
        pageStyle.pageNumberColor = wordColorArray[index];
        pageStyle.timeColor = wordColorArray[index];
        
        [pageStyleList addObject:pageStyle];
    }
    
    [[ReaderSDK defaultReaderSDK] setPageStyle:pageStyleList];
4.11 设置阅读器默认样式

方法名: -(void)setCurrentPageStyleName:(NSString*)styleName;

  参数:  styleName是样式名字,开发者定义好的样式。