A. ios webview 缓存何时释放
缓存何时释放代码如下:
NSString * url = [NSString stringWithFormat:@"%@uid=%@&processcode=11019&tranid=%@&mobile=%@&comeFrom=iPhone&cmbtype=buyRecord&%@",kFilmGetTicketWebAPI,GET_UDID,[[NSUserDefaults standardUserDefaults] objectForKey:@"INGDANHAO"],USERMOBILE,[NSString stringWithFormat:@"%@",[NSURL analyticsString]]];
NSLog(@"+++++++++++++++++++%@",url);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy: timeoutInterval:1 ];
[self.webView loadRequest:request];
B. 应用安全测试应该用哪个软件呢
用MicroFocus的Fortify做应用安全测试就挺好的呀,这款软件操作比较方便,而且可以准确地检测出很多安全问题,挺靠谱的。
C. B2G的介绍1
这里要提一句,基于Web标准和必须要联网之间并非充要关系。比如我们在使用浏览器的截图插件、Readability插件、愤怒的小鸟、植物大战僵尸等应用和游戏的时候,并不需要联网。主要由3个部分组成,UI部分叫做Gaia,名字出自希腊语“大地”,也被称作“万物之母”;采用Mozilla引以为豪的Gecko引擎,Gecko就是上图中那只眼睛大大长的很萌的绿色小蜥蜴;底层部分叫做Gonk,名字来自一种在60年代盛行美国的毛绒玩具。
Mozilla与MWC 2012上宣布正式和西班牙电信联手,有望今年下半年推出首款B2G手机。 B2G将采用linux内核和部分Android技术,B2G目前已经被移植到了Galaxy S II、Nexus S 4G等Android手机上。
抛开中间层 理论上流畅度等同iOS
在IDC的报告中,低价的功能手机最有市场,大部分人都是通过功能手机连接到移动互联网。100美元是个坎儿,包括Google、诺基亚等公司一直都非常重视中底端市场,希望能够占领100美元市场。宫力认为,B2G的前期目标就是这个市场,先让Feature Phone用户以同样的价格用上Smart Phone。
宫力称“B2G是将HTML层盖在硬件之上,没有中间层,直接用HTML调用硬件,只需要比Android更低的配置就能达到同样的效果。”他还表示,由于Mozilla不做硬件,所以设备的流畅度和性能完全取决于硬件厂商,理论上如果经过严格的整合和开发,性能甚至能够达到iOS的标准。
平台就是HTML 没有私有API和SDK
又一个大胆的计划。在iOS平台,使用苹果的私有API理论上是不被允许的,可能导致的后果是应用被下架,更为严重的是开发者的AppleID会被销毁。Android各个版本都有不同的API,开发者需要学习不同的API,同时还要考虑各版本中API不兼容的情况。而Mozilla直接取消私有API,完全托付给WebAPI。
由于完全是基于Web标准,没有私有API,Mozilla就省去了开发SDK的步骤,开发者也省去了安装调试以及学习SDK的步骤。而Mozilla还为此做了一个很Cool的功能:用户按某个按钮就可以显示出该应用的源码,就好像使用浏览器可以察看网页代码一样方便。
D. ios wkwebview 是否有缓存
缓存何时释放代码如下:NSString*url=[NSStringstringWithFormat:@"%@uid=%@&processcode=11019&tranid=%@&mobile=%@&comeFrom=iPhone&cmbtype=buyRecord&%@",kFilmGetTicketWebAPI,GET_UDID,[[]objectForKey:@"INGDANHAO"],USERMOBILE,[NSStringstringWithFormat:@"%@",[NSURLanalyticsString]]];NSLog(@"+++++++++++++++++++%@",url);NSURLRequest*request=[NSURLRequestrequestWithURL:[NSURLURLWithString:url]cachePolicy::1];[self.webViewloadRequest:request];
E. 开发APP之前需要思考哪些问题
首先你要确定你的app是需要选择哪种开发方式,比如说定制原生开发或者是混合开发、或者说是利用H5手机站封装,选择不一样的开发方式资金成本和时间成本上都会有很大的差距。
你要想好你是app开发出来是做什么的,想好你的app是做什么的之后你才能确定你的app到底需要一些什么样的功能,要把APP的功能都想好,以免到时候制作的时候又来增加功能,费时费力。
开发一个app肯定还需要考虑到上架的问题,很多app上架都是需要资质的,自己是否有上架这些app的资质,如果你制作一个app出来但是上不了架,那你就白白浪费时间和金钱了。
当然你还需要想好你的app的受众是哪些,是只针对iOS设备的用户呢还是说只针对安卓设备的用户,或者说是两个端的用你都是你的客户,这你你才可以确定你的app是制作那个端口,或者说是两个端都需要。
F. 什么是ott盒子
1、 OTT影音系统是电视盒中使用到的影音点播直播软件,主要功能是可以像使用腾讯、优酷、搜狐等视频网站一样实现随时随地方面观看视频的需要,但是可以解决部分网站自有内容只能在其客户端观看的弊端,可以实现全网资源随心看。直播的话主要是指把传统有限电视台直接也融入到我们的app中,目前我们支持的的电视台有央视系列、部分地方卫视、咪咕和乐视电视的内容。除此之外和IPTV系统相比,它的优势是可以更好的覆盖资源,而且可以安装第三方软件,实现在线购物、教育等多种功能。目前使用比较多的同类影音类产品有很多,比较出名的有电视猫、泰捷、VST全聚合、魔力视频、天天影视、蜜蜂视频等等几十甚至上百款。我们的定位是技术支持,可以提供源码、各种定制、也有标准版产品。OTT盒子由于政策的原因目前在国内还没有正式规范,但是移动有在做。现在国家规范的是IPTV盒子。
2. IPTV盒子系统。看直播可以实现回看、时移(像点播一样快进、暂停)、点播、虽然理论上是可以看直播和点播,但是因为内容是由广电总局的7个牌照商提供,所以在内容方面更新不是很及时。但是优势在于直播的资源比较稳定流畅,直播走的是电信和联通宽带运营商的专网。是 运营商带宽的一种附加产品,一般是免费送盒子,但是每年交年费,就像有线电视一样。但是费用是交给运营商。现在在运营商的推广下,IPTV盒子的发展很快,用户量达到9000万,IPTV+OTT盒子的用户量已经超过了有线电视,仅仅用十几年的时间就超过了有线电视几十年的用户积累。
点量OTT的优势:
1.视频聚合组件优势:
1)支持网站多:目前支持国内外70多家网站的视频聚合,基本涵盖全网资源
2)稳定性好:我们有专人维护,对于网站的改动能迅速做出反应,一般24小时内解决问题,上次优酷改动,几个小时就可正常使用
3)支持本地SDK解析:除了webapi接口形式外,我们还支持本地sdk解析,这种方式的,很好的解决了部分网站限速的问题,用在app中效果更好,这种方式在国内目前只有我们能做到。在国外的客户可以使用这种方式,能解决限速的问题。
2、后台管理功能+采集
1)已经是成品了,多家客户已经在用了,这种比较稳定
2)后台功能完善,包括代理功能、各种安装量、用户统计、box授权、试用机制等丰富的功能,以及影音管理、APP界面布局管理等功能。
3)有完善的技术支持服务,我们的技术人员大都有5年以上研发经验,很多同事甚至有10年以上研发经验。团队管理经验丰富,模式成熟
3、产品优势:
1)案例比较丰富、youko、韩国ott、中国数字图书馆等,而且包含的端多:安卓、ios、web都可以,既可以用在盒子中也可以用在手机中。
2)价格优势,采用的视频聚合的方式成本更低。其他一套下来包含硬件的话差不多要30万以上,而且很多没有点播,只有直播。我们直播是采用第三方对接,只要频道有网站就可以定制解析。
3)合作模式多样化:软件授权使用、技术入股、源码出售等,而且可以定制功能。
G. h5就是页面吗,还是微信小程序
h5就是html5的简称,现在h5还有一个含义,因为很多人不懂h5是什么东西,但是都知道哪些炫酷的邀请函,节日卡等等是用h5技术做出来的,然后很多人就认为这样的页面就叫做h5。
其实h5就是html5, 它是html的升级,它配合css3+javascript可以写出各种各样的炫酷页面。
它是可以基于微信平台的(可以是小程序的形式,可以是公众号的推文等等),也可以基于任何的其他平台,也可以是个人服务器等等。当然现在用得比较多的场景还是基于微信平台的。
而HR问你的会不会H5,一般指的是你会不会写单页面(即用html5+css3+javascript技术开发的页面(主要是 canvas 的熟练使用))
其实H5在我们开发眼里是一种技术,在其他使用者眼里是一种页面
H. 如何选择低代码无代码平台
近期,Gartner、Forrester等行研机构陆续更新了低代码相关的报告,报告中对低代码的能力模型进行了调整。从整体方向上看,上述行研机构在评估低代码开发平台产品时,提升了数据模型/模型驱动的重要性,并且细化了开发管制(governance)相关的要求。
事实上,随着低代码应用场景的泛化和深化,国际上的主流行研机构已经明确了“低代码开发和传统开发方式在应用场景上一致”的大方向,并且按照开发复杂系统、大规模系统的标准,衡量低代码开发工具。
核心能力体系
在此背景之下,我根据对低代码行业的观察和理解,再考虑上中国特有的需求,整理出一份低代码开发平台核心能力,分为开发、扩展、体验和管制四个方面,供技术选型参考。
1. 开发
1.1 模型驱动开发
模型驱动是软件开发的成熟方法论,是企业级系统开发的通行做法。模型驱动开发大致可以分为三个阶段:
数据模型:根据数据库设计范式,制作出由数据表、关系、约束等构成的数据模型
业务模型:将业务逻辑构建在数据模型之上,形成完整的业务模型(也称领域模型)
交互界面:基于业务模型开发交互页面,编排业务模型以实现业务操作
1.2 可视化:UI设计
使用可视化的方式构建前端界面和前端交互行为。如果您的项目需要保持统一的VI,那么是否支持引入CSS文件也需要纳入考察项目。
1.3 可视化:逻辑处理开发
使用可视化的方式,在前端或者后端构建业务处理逻辑。对于有事务性要求的企业级应用项目,如ERP、WMS或财务,需要重点关注后端业务逻辑处理的开发方式。
1.4 可视化:系统运维
低代码开发平台应关注软件开发的全生命周期,部署、迭代、监控等环节的可视化,同样可以大幅降低软件的整体成本。
2. 扩展
2.1 数据库集成
数据库集成能力是打通“数据孤岛”的必备条件,也是成本最低的方案之一。是否能够连接外部的数据库,是否能够调用该数据库上存储过程等编程能力,对大企业的软件开发项目来说至关重要。
2.2 WebAPI集成
现代的软件系统和SaaS服务均以Web API的形式对外提供接口,用于集成。通过调用Web API可以让低代码开发平台具备更强大的开发能力和更广泛的应用场景。
2.3 编程接口
软件需求和IT环境的变化通常会超过开发平台的迭代,编程接口便是避免“卡在最后一公里”的最后一道防线。
2.4可扩展的组件生态
在编程接口的基础上,如果能够存在一个组件生态,让用户能快速找到自己所需的开发功能,避免“重复造轮子”,何乐为不为呢。
3. 体验
3.1 响应式页面支持
响应式页面可以分为流式布局和网格布局两种。支持响应式页面意味着用户无需针对特定的屏幕尺寸做专门的设计,可以大幅提升UI的开发效率。
3.2 定制化的原生APP支持
为了充分利用硬件的特性,针对iOS或Android开发原生APP依然没有被抛弃。是否能构建从Logo到功能,全定制化的原生APP对于某些项目来说,依然是必须项目。
3.3 本土化移动端支持
移动办公在国内基本上等同于钉钉和微信,所以,低代码开发平台需要具备与这两个IM软件无缝对接的能力,从页面嵌入到用户集成,不容忽视。
4. 管制
4.1 Web版IDE
相比于桌面版的IDE,Web版具备更快速的部署、更统一的版本等优势,对于大型项目开发团队而言,为此牺牲一定的开发效率都可以接受。
4.2 版本管理
企业级应用的高复杂度和频繁的需求变更决定了版本管理的重要性。事实上,在专业开发领域,版本管理已经成了标配,并基于此衍生出了完整的项目管理方法论。
4.3 代码仓库管理
与代码类似,用户使用低代码工具开发的资产也是公司或团队的财富,如何安全可靠的保存这些资产,将其存放在位于局域网或互联网的Git等代码库,配置访问权限是个好思路。
4.4 局域网部署
在中国,依然有很多企业对数据和应用程序的可控性提出非常严苛的要求,如果用户需要为他们开发核心业务系统,支持局域网部署,在完全没有互联网的情况下也可以开发、部署和使用就成为不得不面对的现实。
国内外典型产品横评
为了直观的展示核心能力体系,我选取了国内外几个典型的低代码开发平台产品(outsystems、powerapps、活字格、钉钉宜搭)进行横评。这里的评价仅为定性,不涉及定量。一家之言,仅供参考。
I. Android或IOS服务器端采用什么技术
iOSApp和webserver进行通信,对server的技术实现是没有限制的。
但是App和server间的通信接口的定义存在一些比较好的实践,比如RESTfulwebAPI,更多是设计上的取舍。
服务端不分平台 ios android 网页都可以公用一个服务端
主流服务端开发技术java php asp.net, nodejs还有其他的也行不过用的没前三个多。
J. 如何整合Office Web Apps至自己开发的系统
实际上Office Web Apps也是可以接入自己开发的系统的。下面介绍一下整合OfficeWeb Apps的一些理论知识。
要想让自己的系统与Office Web Apps整合就一定要清楚一些概念,首先要理解什么是”WOPI”。
WOPI的英文全称是“Web Application Open Platform Interface”,中文名为“Web应用程序开放平台接口协议”。
WOPI协议提供一系列基于web方式的,使文档能在Office Web Apps中查看与编辑的接口服务(WebService)。
只要web application按照标准,实现了WOPI的接口,那么就可以调用Office Web Apps。例子很多,比如SharePoint,Exchange,SkyDriver,Dropbox集成Office Web Apps。
如果自己做的web应用也实现了相应接口,也是可以调用Office Web Apps的。实现文档的在线编辑查看。
这样比市面上的一些基于ActiveX的在线Office产品有很大的优势。
首先Office Web Apps是基于网页技术,所以是跨平台的,可以在iOS,安卓,WP及PC使用,实现多屏一体。
其次Office Web Apps实现了桌面Office的大部分功能,能在客户机没有安装Office的情况下,实现云端上的文档编辑查看。
下面介绍的内容都是基于http协议下的,https也是类似的。
在WOPI结构中,
我们把存放Office文档的web应用叫WOPI Host或者WOPI Server。
把查看编辑操作Office文档的web应用叫WOPI Client或者叫WOPI applications。
所以,Office Web Apps充当的就是WOPI Client的角色。
SharePoint,Exchange,自己开发的文档管理系统充当的就是WOPI Host的角色。
下图为浏览器,server,client三者的请求顺序及关系:
从上图可知,WOPI Client 向WOPI Server发送了两次请求
1. Tell me about the file
2. Give me the file
所以WOPI client至少要提供两个Web服务。
1. 一个是CheckFileInfo服务
此服务返回的是请求文件的基本信息,WOPI Host以json方式返回给WOPI Client.
服务URI格式一般为
http://server/<...>/wopi*/files/<id>?access_token=<token>
此服务返回的json格式类似为:
{
"BaseFileName": "Sample Document.docx",
"OwnerId": "tylerbutler",
"Size": 300519,
"SHA256": "+17lwXXN0TMwtVJVs4Ll+gDHEIO06l+hXK6zWTUiYms=",
"Version": "===="
}
Json中至少要包括五个属性:BaseFileName, OwnerId, Size, SHA256, 和 Version
BaseFileName: 文件名。
OwnerId: 文件所有者的唯一编号。
Size: 文件大小,以bytes为单位。
SHA256: 文件的256位bit的SHA-2编码散列内容。
Version: 文件版本号,文件如果被编辑,版本号也要跟着改变。
更多参数介绍请参考:http://msdn.microsoft.com/en-us/library/hh622920(v=office.12).aspx
2. 一个是GetFile服务
此服务返回的是请求文件的内容,WOPI host以数据流的方式返回给WOPI Client.
服务URI格式一般为
http://server/<...>/wopi*/files/<id>/contents?access_token=<token>
注意:CheckFileInfo与GetFile服务的URI格式只差了一个/contents,其他地方的格式是没有不同的。这么做是为了让WOPI client可以通过CheckFileInfo服务URI推导出GetFile服务的URI,千万不要别出心裁,写出的服务URI格式破坏了这层关系。
在上述URI格式中,都有一个access_taken身份验证令牌。这个身份验证令牌是必须要有的,WOPI client会把此令牌回发给WOPI Host,由WOPI Host验证当前用户对当前文件的权限。所以实际上Office WebApps根本不涉及文档的权限管理。
我们在WOPI client上打开一个Office文档的url地址类似如下:
http://wopi-app-server.contoso.com/wv/wordviewerframe.aspx?WOPISrc=
http%3A%2F%2Fmy-wopi-host%2Flocal%2Fwopi
%2Ffiles%2F1-Sample%2520Document.docx&access_token=
dc172034-c6f9-4a43-bc3f-d80dd93c1de1
这个里面有两个传递参数:WOPISrc和access_token
WOPISrc参数的内容为:http://my-wopi-host/local/wopi/files/1-Sample%20Document.docx
实际上这个是WOPI Host上的CheckFileInfo服务地址。
WOPI client会通过这个地址加上access_token从WOPI host上获取到1-Sample%20Document.docx文件的信息;
并且通过这个地址推导出WOPI Host上的GetFile服务地址,通过GetFile服务获取到1-Sample%20Document.docx文件的内容。
WOPI host上判断什么类型的文件应该怎么用WOPI client打开,WOPI client会提供一个xml文件给WOPI host,这份xml文件叫WOPI Discovery。格式类似如下:
<?xml version="1.0" encoding="utf-8"?>
<wopi-discovery>
<net-zone name="external-https">
<app name="Word" favIconUrl="https://wopi-app-server.contoso.com/wv/
resources/1033/FavIcon_Word.ico"
checkLicense="true">
<action name="view" ext="doc" default="true"
urlsrc="https://wopi-app-server.contoso.com/
wv/wordviewerframe.aspx?
<ui=UI_LLCC&><rs=DC_LLCC&><showpagestats=PERFSTATS&>"/>
<action name="view" ext="docm" default="true"
urlsrc="https://wopi-app-server.contoso.com/
wv/wordviewerframe.aspx?
<ui=UI_LLCC&><rs=DC_LLCC&><showpagestats=PERFSTATS&>"/>
……
</app>
……
</net-zone>
</wopi-discovery>
如上所述,打开doc文件,应该使用https://wopi-app-server.contoso.com/ wv/wordviewerframe.aspx的url打开。
WOPI host应该获取这份文件一次,以后打开什么类型的文件,调用什么url自己判断。