如何判断h5是安卓还是ios
A. 如何判断H5移动端是IOS还是安卓
//判断是否是安辩缺卓还是ios
functionisAndroid_ios(){
varu=navigator.userAgent,app=携毁辩navigator.appVersion;
varisAndroid=u.indexOf('Android')>-1||u.indexOf('Linux')>-1;//android终端或者uc浏览器余侍
varisiOS=!!u.match(/(i[^;]+;(U;)?CPU.+MacOSX/);//ios终端
returnisAndroid==true?true:false;
}
B. h5 js判断是安卓还是ios设备,跳转到对应的下
js监听navigator.userAgent,代码如下:
varuser=navigator.userAgent;
if(user.match(/(iphoneos)/i)){
console.log("isphone");
}elseif(user.match(/ipad/i)){
console.log("isipad");
}elseif(user.match(/(midp|ucweb|android|windowsce|windowsmobile)/i){
console.log("android");
};
C. H5页面如何实现自动识别IOS或安卓,如果是IOS就自动跳转到苹果应用商店AppStore
可以的,具体我记不太清了,大致实现方法是
进入H5页兄知埋面,js判断是ios还是android或是h5,
然后羡蚂向ios和android索要起对猛郑应的方法,然后判断是否有这个方法,如果有就交还给app
D. 如何判断一个 APP 页面是否是 H5 页面
1,租带首先从逻辑关系上猜测下:
比如淘宝京东手机APP上的商品分类肯定都是茄型知H5,因为不可能每次产品更新产品信息都要在安卓苹果端分别更新。这样工作量很大也不现实。
2.在无网络的情况下页面是否能打开。原生开发无网络是能颤消打开页面的因为有缓存的。
3.长按页面,如果出现文字选择、粘贴功能的是H5页面。
4.抓包抓到url或者html的代码肯定是 “H5”
一直从事APP项目,希望能帮到你~
E. 在线等,网页如何判断客户端是安卓还是IOS系统
可派虚通过HTTP_USER_AGENT来判断。
PHP code?
function getUserAgent(){
$agent = $_SERVER['HTTP_USER_AGENT'];
if(stripos($agent,'iPod')!==false||stripos($agent,'iPhone'尘悄燃)!==false||stripos($agent,'iPad')!==false){
return 'iOS';
}elseif(stripos($agent,'Android')!==false){}
return 'Android';
}else{
return 'other'运誉;
}
}
F. web页面如何判断是ios还是android
判断原理:
javaScript是前端开发敏此的主要语言,我们可以通过编写JavaScript程亮档序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。
浏览器类型
⑴浏览器特有属性
⑵根据userAgent
浏览器版本
⑴根据userAgent
对于手机浏览器判断
1.如何判断是否为移动终端 利用正则match,
匹配navigator.userAgent是否含有字符串AppleWebKit*****Mobile
安卓qq浏览器HD版 只有AppleWebKit
2手机语言版本的判断
使用navigator.browserLanguage 便可得出windows phone语言版本,
当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出 navigator.language
CODE:
<script type="text/javascript">
var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appVersion;
return { //移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, //IE内桥键迅核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
G. 移动端h5开发分ios和android么
1.H5的性能很差,一般经常改的地方可以用H5,比如论坛,咨询之类的,而且限制也是很大,很多效果是没办法做到的。GUI框架的WebView普遍是这样的。如果一个APP全部由H5来做(不太可能,送审很可能被拒),那么会显得非常卡。
2.用iOS SDK,如果实现热更新是比较麻烦的。巧数对于论坛,咨询这种模块,动不动就改版,做起来比较头疼,用H5就很合适了。尤其在APP跨安卓和iOS的时候,这类模块如果直接用H5,那么就很容易共用。
H5网页App开发和纯原生的App的差距主要聚集在以下几个方面:
1、动画
动画有很多种,比如侧边栏菜单的滑入滑出、元素的响应动画、页面切换之间的过场等等,在H5之逗则下的众多实现方法都没有办法达到纯原生的性能。一般这些的话有几种不同的选择:css3动画、javascript动画、原生动画。
css3动画非常的消耗性能,如果某一个元素用到css3动画可能还看不出来,但大面积或过场使用css3动画会让app低端手机体验非常差。最好的选择一般是通过框架调用底层的动画,但不管怎么样等于在原来的代码上包上了一层,性能还是不可避免的受到影响。
比如在一个新页面的载入上,如果调用底层动画要考虑的问题有两个,一个是本身资源页面的渲染问题,另一个是远程数据的获取。即便是这些动画能够很快的响应,但大量的css页面会导致渲染卡顿,滑入时可能会有白屏/机器卡顿的现象。为了解决这些性能问题又必须要用到预加载或模拟动画。即便是这样,滑入滑出的动画在低端的安卓机器上还是有很多问题,如果获取服务端数据处理的方式不合适,卡顿白屏的现象会更严重。具体看下面的数据获取方式。
2、获取服务端数据
首先要接受的是,这里的数据获取都是在资源页面上异步完成的,因为只有这样才能让这些资源页面完成预加载或者渲染。但是异步拿到的数据在填入页面中时可能会涉及DOM操作,众所周知,DOM操作非常消耗性能,如果页面小还好,页面稍大数据稍微复杂一点,频繁的DOM操作会导致明显的闪白。而且最重要的一点是,如果页面加载进来之后数据更新的速度太慢,也会让页面模板等待很长时间,对用户体验又不友好,总不能每次打开都像浏览器一样等待刷新是吧
这个问题如果没有得到解决,H5开发是很难承担大规模数据的页面,在它们之中频繁切换更是难上加难,那么肯定有人也会想到用MVVM的方式,其实我也写过一些基于MVVM的H5app开发,相对来说它们获取数据和更新数据的方式更敏捷更科学,但写的过程中又要注意很多H5独有的问题,这些问题在下面的页面切换里来讲。
3、页面切换
上面我们看到了几种不错的实现方式,比如预加载和模拟动画,甚至有批量的预加载,批量的截图模拟动画等等,虽然看起来很友好解决了不少问题,但事实上如果页面足够多就会引发另一个问题——页面的生存周期。
试想一下,如果引导页或者主页面缓存了山宽棚5个子页面的资源,在跳转到响应的子页面时又会缓存这些子页面的下级页面资源,如此反复肯定会占据大量内存使APP的体验下降。那么怎么知道那些页面是需要的,最多缓存多少页面,什么时候结束哪些页面的生存周期呢?在我用过的很多H5APP的框架里都没有对这些问题有一个完美的解答,因此在页面较多内容较多的app开发中可能会因这些资源分配的问题降低性能。
这时候我们回过头来再看看MVVM的数据加载问题,实际上不管哪个MVVM框架,写过的人都知道管理这种新型的前端代码最重要的问题是内存的问题,你既要保证代码写的足够优雅没有任何内存泄露问题,也要考虑到在页面生存周期结束时它们的控制器/页面资源是否得到释放,这对全局有没有什么影响,在多个请求时也要合理的分配资源,甚至是复用这些父级页面传过来的缓存资源等等。较小的APP可能并不会有这些问题,如果你想用纯H5来开发大型app,这很可能会浪费你很多时间——而且结果还不会让你满意。
4、Android/iOS的区别
很多人都说纯H5app开发一次编写就能编译Android/iOS两种不同的APP,大大降低了成本。实际上这个观点本身就是值得怀疑的,如果你写过这类APP就能明白我在说什么,它们既不省事,又存在很多BUG,调试时尤其繁琐。举一个很简单的例子,Android和iOS在返回上一页的处理方式上就有明显的区别,iOS的顶部bar在全屏下怎样处理,Android机器出现smart bar怎样处理页面的布局,调用底层硬件时怎样区分不同的场景等等,你需要写一个又一个机型和系统的判断,然后分别在Android和iOS下调试,最后你却发现这并没有卵用,累的要死却什么没学到,只有一堆不知道什么时候会过时的经验。
现在做H5混合APP开发的人很多,但是纯H5却很年轻,很多问题都没有很好的解决,这几个是我在做这些APP时考虑最多的问题。最后说一个很少人注意到的H5优势,大家大谈H5APP时都是快速开发、低成本、多平台等等,但我却觉得它和很多APP开发方式相比有一个不同之处——图文混合的排版。正是这些复杂多变的CSS样式消耗了性能,但是它带来了排版的多样性,能够细致到每一个字宽行高和风格的像素级处理,才是H5的优异之处。
H. html5怎样查看用户用ios还是安卓
varbrowser={
versions:function(){
varu=navigator.userAgent,
app=navigator.appVersion;
return{//移动终端浏览器版本信息
trident:u.indexOf('Trident')>-1,//IE内核
presto:u.indexOf('Presto')>-1,//opera内核
webKit:u.indexOf('AppleWebKit')>-1,//苹果、谷歌内核
gecko:u.indexOf('Gecko')>-1&&u.indexOf('KHTML')==-1,//火狐内核
mobile:!!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/),//是否为移动终端
ios:!!u.match(/(i[^;]+;(U;)?CPU.+MacOSX/),//ios终端
android:u.indexOf('Android')>-1||u.indexOf('Linux')>-1,//android终端或者uc浏览器
iPhone:u.indexOf('iPhone')>-1||u.indexOf('Mac')>-1,//是否为iPhone或者QQHD浏览器
iPad:u.indexOf('iPad')>-1,//是否iPad
webApp:u.indexOf('Safari')==-1//是否web应该程序,没有头部与底部
};
}(),
language:(navigator.browserLanguage||navigator.language).toLowerCase()
}
//判断:
varand=browser.versions.android;//android
varios=browser.versions.ios;//ios
I. iOS JS<HTML>做判断区分安卓与iOS方法,if
安春悉卓window里面name<["js"]> 方法名槐梁:["intenttoZxing"]
if (window["js"] && window["js"]["intenttoZxing"]) {//铅森运安卓
window.js.intenttoZxing();
} else {//iOS方法name<ScanAction>
window.webkit.messageHandlers.ScanAction.postMessage(null);
}