专题总结 >> 移动端 >> 移动app集成 >> 嵌入式集成APP示例—IOS

嵌入式集成APP示例—IOS

顶( )
最后更新日期: 人发表评论 (点击查看)
1. 描述
嵌入式集成App,顾名思义,是指通过FR开放的关于移动App的API将帆软移动App各个功能集成至自己的App中。
2. 示例—IOS
下面我们以IOS系统嵌入式集成FR移动app的demo示例TestFineReportUtils_AppDemo为例,详细讲述FR移动app各个接口的使用方法。
2.1 资源下载
在使用接口进行集成之前,首先要下载FR移动App接口集成的资源,点击Directory_resources_IOS下载资源文件。
解压缩之后,可以看到有2个文件,如下图:
2.2 导入FineReport app资源
导入资源方法与直接集成移动app—IOS的方法一样,只是将FineReportFrameWork.framework换成FineReportUtilsFrameWork.framework即可,这里不再赘述。
2.3 登录报表服务器
将FR的移动App集成至自己的App中,那么点击登录按钮登录用户自己的App的时候,同时也要登录FR的报表服务器,即在登录按钮的点击事件中将用户名密码发送到FR报表服务器,进行验证,FR移动端app报表服务器验证地址如下:
serverURL:服务器地址,如http://www.finereporthelp.com:8889/pad/ReportServer;
username:用户名,如上述地址的用户demo;
password:登录密码,如上述用户的密码123456;
返回值:返回值类型均为整型。-1:连接失败;0:用户名密码错误;1:登录成功;-2:设备没通过审核
下面截取demo中的登录报表服务器的代码详细解释,点击登录按钮时,触发to3rd方法,实现后台登录报表服务器,如果登录成功,则获取所有的报表节点,并构建目录是显示出来,如下图:
2.4 获取报表节点
报表服务器登录成功之后,可以得到用户的目录树上的所有节点信息,返回类型为FRNode的数组,接口如下:
FRNode数组的详细介绍请查看FRNode
如登录报表服务器示例图中,如果登录成功,则获取报表节点,并构建目录树,在导航中显示报表目录树。
2.5 获取用户收藏的报表节点
得到用户收藏的报表信息,返回类型为FRNode的数组
2.6 FRNode
FRNode是一个数组,比如说获取报表节点方法的返回值为该用户在FR系统中目录树下的所有节点信息。
创建FRNode数组方法如下:
url:如果挂载在目录树上的节点是URL类型,则url保存对应的url;
reportId:如果挂在在目录树上的节点是报表,保存report对应的Id;
reportName:报表名称;
reportType:报表查看类型:填报/预览;
favoriteid:如果报表被收藏了,记录收藏的id;
childrenNodes:如果是目录节点,返回目录下的孩子节点。
把报表节点转换成可在WebView中预览的NSURL对象,方法如下:
在获取用户FR系统中目录信息时,报表节点可能会挂载在目录文件夹下面,比如说,系统中报表查看目录下挂载这报表节点,如果要获取报表节点,首先要判断其是否是目录节点,代码如下:
下面截取demo中获取报表节点url的部分详细解释,如下图:
2.7 与服务器之间建立交互
与服务器之间建立交互是指建立WebView JavaScript和Objective-C Native Code之间的关系,代码如下:
reportWebView:需要和Native Code建立关联的webView,类型为FRWebViewWithBridge,这是个继承了UIWebView的类,其详细使用方式请查看FRWebViewWithBridge
target:一般为WebView的Controller,后面的action即是在target对象上调用,同时target也将设置为reportWebView的delegate(代码中不需指定reportWebView的delegate);
后面的几个action的意思是,reportWebView的页面上用户作出一些操作后,会发送消息让APP作出响应,如报表分页预览加载完成后,希望APP上能显示出“当前页数/总页数”。部分action都会接收到一个类型为id的参数,各个action处理的信息如下:
selfAction:在当前页面打开超链接时的处理方法,data为超链接的url(NSURL类型),即报表的链接地址,关于超链的逻辑将在后面详细说明;
dialogAction:在新窗口打开超链接时的处理方法,data为超链接的url(NSURL类型),关于超链的逻辑将在后面详细说明;
backAction:超链之间后退时执行的方法,报表页面返回参数页面需要该方法的支持,关于超链与参数界面的关系将在后面详细说明;
forwardAction:超链之间前进时执行的方法,参数页面到报表页面时需要该方法的支持,关于超链与参数界面的关系将在后面详细说明;
writeAction:如果报表是填报预览时执行的方法,一般是把导航栏按钮显示为“提交”;
defaultAction:如果报表是分页预览,报表加载结束时执行的方法,显示“当前页数/总页数”;data为“当前页数/总页数”样式的字符串。
下面截取示例中代码解释如何实现与服务器建立交互,在viewDidLoad方法中新建FRWebViewWithBridge,并通过其与服务器进行交互,如下图:
注:每次与服务器进行交互,都要建立FRWebViewWithBridge。
2.8 FRWebViewWithBridge
在上面介绍了FRWebViewWithBridge类的各个属性,下面详细介绍使用方法:
demo示例中在自身打开报表链接的方法如下图,即点击报表节点时,获取data参数(data参数执行报表链接地址),并在自身打开报表:
demo示例中在新窗口中打开报表链接的方法如下图,即点击报表节点时,获取报表链接地址data,并在新窗口中打开报表:
根据报表链接打开的位置不同,后退按钮的接口会有所不同,如下:
demo示例中在报表页面后退按钮的方法如下图,即点击按钮时,首先判断当前报表的打开方式,决定使用哪种后退接口实现后退操作:
根据报表链接打开的位置不同,前进按钮的接口会有所不同,如下:
demo示例中在报表页面前进按钮的方法如下图,即点击按钮时,首先判断当前报表的打开方式,决定使用哪种前进接口实现前进操作:
根据该返回值决定后退按钮是否可以对在新窗口中打开的报表执行后退操作,即当前的webView是否可以返回到别的webView(是否是从超链打开的)。
根据该返回值决定前进按钮是否可以对在新窗口中打开的报表执行前进操作,即当前的webView是否可以返回到别的webView(是否是从超链打开的)。
注:参数面板和相应的报表正文页面之间使用超链的逻辑,即:在参数面板查询之后进入报表正文页面,可以使用“后退”返回参数面板,返回参数面板之后又可使用“前进”再次回退到报表正文页面。
2.9 FR移动App功能按钮接口
分页预览报表时,数据过多,报表会分页,页数跳转的方法即翻页功能接口如下:
pageNum:跳转到的页数;
reportWebView:承载报表的webview,类型为FRWebViewWithBridge,详细请参照与服务器之间建立交互定义的reportWebView。
在填报报表中,报表执行填报即提交按钮接口如下:
reportWebView:承载报表的webview,类型为FRWebViewWithBridge,详细请参照与服务器之间建立交互定义的reportWebView。
为了方便下次查看某张报表,可将其收藏至收藏夹中,收藏功能接口如下:
frnode:保存报表的相关信息,类型为FRNode。
frnode:保存报表的相关信息,类型为FRNode。
TestFineReportUtilsdemo中,使用了收藏功能和取消收藏功能,如下图:
2.10 url处理为app预览报表方式
在FR移动app中查看报表,报表没有工具栏,参数面板在独立的页面中,如果直接在用户app中使用FR报表的url,不调用该方法,报表的工具栏、参数面板外观与pc端一致,使用如下方法即可在用户app中将报表处理为FR移动app预览报表的样式,没有工具栏,参数面板独立显:
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
返回顶部
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3