移动端 >> 移动app集成 >> IOS端集成App

IOS端集成App

顶( )
最后更新日期: 人发表评论 (点击查看)
1. 资源准备
准备好IOS端集成FineReport App的资源文件,包括自己的IOS工程、FineReport提供的资源包。
点击IOS.zip下载FineReport提供的集成资源包,解压至文件夹中,可以看到如下图所示的文件:
其中FRDemo和FRDemo_目录树是示例demo,说明文件夹中是使用说明,剩下的三个文件夹才是集成时需要依赖的资源包。
framework&bundle:里面包含了真机和模拟器集成时所需要的framework和bundle资源文件,图片资源(IFImages.xcassets);
WeiXinSDK:微信的SDK;
BaiduMap:百度地图的SDK
FRDemo:集成示例,可以通过设置服务器地址,报表路径,加载报表,即直接通过URL访问报表;
FRDemo_目录树:集成示例2,可以登录服务器,展示目录树,即通过发送用户名密码进行验证,验证成功之后直接显示FineReport的主页或者目录树。
2. 资源导入
在自己的项目中导入资源文件framework&bundle\模拟器\FineResource.bundle,添加framework&bundle\IFImages.xcassets到项目中,并在Build Phases——Link Binary With Libraries中添加下图所示的lib包:
其中FineSoft.framework是FineReport提供的资源文件,在解压文件夹的framework&bundle\真机\FineSoft.framework目录下。
同时,在项目中添加前面下载资源中的微信SDK和百度SDK,如下图:
3. 集成使用FineReport App
资源都导入配置完成之后,就需要集成App了,IOS端集成App有两张方式,一个是直接通过URL集成服务器上的模板,另外一个是通过发送用户名密码至服务器,验证通过之后,显示FineReport目录树。
3.1 直接URL集成
直接URL集成报表,就是通过URL链接直接访问FineReport服务器上的报表。
在项目中使用IFEntryViewController加载报表,根据报表路径,服务器路径,预览类型创建IFEntryViewController对象。
引入头文件:
根据服务器地址和报表路径生成IFEntryViewController:IFEntryViewController *entryVC = [[IFEntryViewController al-loc] initWithPath:path ServerUrl:url]
reportPath:报表路径,如app/DetailedDrillA-phone.cpt;
serverUrl:服务器地址,如http://192.168.1.100:8075/WebReport/ReportServer;
viewType:预览类型,可选值有IFEntryViewTypePage(分页预览),IFEntryViewTypeWrite(填报预览),可选用,默认为分页预览;
parameters:报表传递的参数,可选用;
如果上述四个接口全部使用,则其使用方法为:- (id)initWithPath:(NSString *)reportPath serverUrl:(NSString *)serverUrl viewType:(IFEntryViewType)viewType parameters:(NSDictionary *) params;
比如说URL集成一张在线app demo下的表单,直接预览,不传递参数,代码如下:
其详细使用情况可查看资源包中的FRDemo示例
3.2 集成目录树查看模板
集成目录树,就是指发送用户名密码至服务器验证之后,访问系统的目录树,查看系统下的所有模板。
在项目中使用IFEntryViewController加载报表。
其接口代码如下:
登录服务器的各个参数含义:
serverName:服务器名称,如Demo服务器;
serverUrl:服务器地址,如http://192.168.1.100:8075/WebReport/ReportServer;
username:用户名;
password:密码;
success:登录成功的回调函数(一般是加载目录树);
failure:登录失败的回调函数。
其各个参数的使用方法为:+ (void)logInto:(NSString *) serverName serverUrl:(NSString *)serverUrl withUsername:(NSString *)username andPassword:(NSString *)password success:(void (^)())success failure:(void (^)(NSString *))failure;
比如说集成在线app demo工程的目录树,代码如下:
其详细使用情况可查看资源包中的FRDemo_目录树示例
4. 注意事项
1、需要配合FR7.1.1版本使用;
2、提供的示例FRDemo只能在真机上运行,如需在模拟器上运行,请替换framework&bundle/模拟器中的framework和bundle文件;
3、如果遇到百度地图的集成c文件冲突报错,可以将other linker flags中的-all_load改为-ObjC。
5. webView里打开原生报表
如果集成的方式是从webView上的html元素事件触发,打开原生报表,那么需要自定义WebView继承UIWebView,并重写- (BOOL) webView:(UIWebView *)webViewT shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType方法来实现。原理就是分析url,如果url是报表类型,就用EntryViewController打开报表。
示例可见:
6. 测试
FineReport提供一个Demo地址供测试。
服务器地址:www.finereporthelp.com:8889/app/ReportServer;
用户名:demo;
密码:demo;
可用报表路径:app/DetailedDrillA-phone.cpt app/para-phone.cpt app/DetailedDrill-pad.cpt app/parapad.cpt app/sales/sales.frm app/sales/map.frm app/sales/saleseffects.frm app/sales/TOP6-pad.frm app/sales/product.frm app/sales/SWOT.frm app/sales/orders.frm app/sales/abc.frm app/financial/FinaceStatistic.frm app/Operations/area.frm
如想查看更多示例效果,可联系相关集成人员。
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3