前端开发面试题分享,看一下是不是你需要的
?
1、如何确保 InAppBrowser能被完整调用?
在调用外部资源的HTML文件中的标签中要加入
type=" text/javascript" charset="utf-8" src="cordova. js">
以确保 InAppBrowser插件能够被完整调用,否则会出现底部返回按钮无法出现的情况。
2、如何利用 InAppBrowser插件调用外部资源?
在 config. xml文件中加入href="*"/>(即将任何外部资源放入白名单中),就可以利用 InAppBrowser插件调用外部资源了。
3、在混合开发中,如何实现上拉刷新,下拉刷新和加载?你遇到过什么问题?
用 iscroll实现上拉刷新、下拉刷新和加载,效果比较差,在页面上只能上下滑动,不能左右滑动。如果把页面嵌入到客户端的tab底下,就会阻止客户端的左右滑动。如果要实现左右切换,就要把 iscroll插件中的
onBeforeScrollStart:function(e){ e.preventDefault ( );}
改为
onBeforeScrollStart:null
缺点:虽然实现了上拉刷新、下拉刷新,但是效果不是很好,有时候会“弹”不回去,和原生的有一些差距。
4、HTML5和 Native的交互如何实现?
WebView本来就支持 JavaScript和Java相互调用,只前端培训需要开启 WebView的 JavaScript脚本执行功能,并通过代码 mWebView. addJavascriptInterface(new JsBridge( )," bxbxbai")向HTML5页面中注入一个Java对象,然后就可以在HTML5页面中调用 Native的功能了。
5、微信是用 Hybrid开发做得最好的App之一,它是如何做交互的?
在微信开发者文档中可以看到,微信JS-SDK封装了微信的各种功能,比如分享到朋友圈、图像接口、音频接口、支付接口、地理位置接口等。
开发者只需要调用微信JS-SDK中的函数,然后统一由JS-SDK调用微信中的功能这样的好处就是,开发者写了一个HTML5的应用或网页,在 Android和iOS版本的微信中都可以正常运行。
6、Hybrid开发适用于哪些功能?
Hybrid开发就是在 Native客户端中嵌入了 HTML App的功能,这方面微信应该是做得最好的。
由于HTML5的效率以及耗电问题,可能用户对 Web App的体验不满意,Hybrid App也只适用于某些场景。
把一些基础的功能(比如调用手机的摄像头、获取地理位置、登录注册等)做成 Native的功能,让HTML5来调用更好,这样的体验也更好。
如果把一个登录和注册功能也做成HTML5版本的App,在弱网络环境下,这个体验应该会非常差,或许用户等半天还没加载出页面。
一些活动页面(比如“秒杀”、团购等)适合采用HTML5开发,因为这些页面可能设计得非常炫而且复杂。HTML5开发非常简单,并且这些页面时效性短,更新更快,因为一个活动说不定就一周时间,下周就下线了。而如果用 Native开发,成本是很高的。
7、Web App和混合App的区别是什么?
区别如下:
(1) Web App指采用HTML5语言写的App,需要安装触屏版网页应用。
优点包括:开发成本低,迭代速度快,能够跨平台终端。
缺点包括:入口临时,获取系统级别的通知和提醒效率低,用户留存率低,设计受限制,体验较差。
(2)混合App指半原生半Web的混合App,需要安装它才能访问Web内容。
例如新闻类App、视频类App普遍采取Native框架web内容,混合App极力打造类似于原生App的体验,但仍受限于技术和网速等诸多因素。
8、什么是 Android混合开发?如何申请权限?
Android混合开发使用Java和H5共同开发界面,通过 JsBridge进行通信,一部分界面首先在本地写好,然后通过网络请求获取数据,进行展示。当然,也可以完全是H5界面,在 WebView中进行展示。
权限可以在 Manifest.xml中申请, Android 6.0以上版本可以通过代码动态申请。
9、什么是混合开发?
混合开发(HTML5开发)相当于一种框架开发。该模式通常由“HTML5云网站+App应用客户端”两部分构成,App应用客户端只须安装应用的框架部分,而在每次打开App的时候,从云端取数据并呈现给手机用户混合开发的另一种形式是套壳App。
套壳App就是用H5的网页打包成App。
虽然App能安装到手机上,但是每个界面都是通过HTML5开发的网页。这种App数据都保存在云端,用户每次访问都需要从云端调取全部内容,这样就容易导致反应慢,每打开个网页或单击一个按钮,加载网页都需要等很长时间。
10、混合App开发的优势是什么?
优势如下:
时间短。基本都是直接嵌套模板或打包成App,这会节省很大一部分时间。
价格便宜。代码不需要重新写,界面不用重新设计,这些都是固定的,可替换的地方很少,所以价格相对便宜。
原创作者:互联网菜鸟