判断终端类型、微信的文章防盗链、h5页面跳转打开新的app、跳转到app市场详解编程语言

判断终端的类型、安卓、ios、微信、qq

function  GetMobelType()  {                 
	var  browser  =   {                     
		versions:   function()  {                         
			var  u  =  window.navigator.userAgent;                         
			return  {                             
				trident:  u.indexOf('Trident')  >  -1, //IE内核 
				presto:  u.indexOf('Presto')  >  -1, //opera内核 
				Alipay:  u.indexOf('Alipay')  >  -1, //支付宝 
				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  ||  u.indexOf('Mac')  >  -1, //是否为iPhone或者安卓QQ浏览器 
				//iPhone: u.match(/iphone|ipod|ipad/),// 
				iPad:  u.indexOf('iPad')  >  -1, //是否为iPad 
				webApp:  u.indexOf('Safari')  ==  -1, //是否为web应用程序,没有头部与底部 
				weixin:  u.indexOf('MicroMessenger')  >  -1, //是否为微信浏览器 
				qq: u.match(//sQQ/i) == " qq", //是否QQ 
				Safari:  u.indexOf('Safari')  >  -1, 
				  ///Safari浏览器, 
 
				                         
			};                     
		}()                 
	};                 
	return  browser.versions;             
} 

  截取浏览器地址拼接参数

//截取地址 
function GetRequest(name) { 
	var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 
	var r = window.location.search.substr(1).match(reg); 
	if(r != null) { 
		return unescape(r[2]); 
	} else { 
		return null; 
	} 
 
} 

  跳转到app市场,以微信的为例

//跳转到app市场 
					var appstore, ua = navigator.userAgent; 
					if(ua.match(/Android/i)) { 
						appstore = 'market://search?q=com.singtel.travelbuddy.android'; 
					} 
					if(ua.match(/iphone|ipod|ipad/)) { 
						appstore = "https://itunes.apple.com/cn/app/wei-xin/id414478124?mt=8&ign-mpt=uo%3D4"; 
					} 
					function applink(fail) { 
						return function() { 
							var clickedAt = +new Date; 
							setTimeout(function() { 
								// To avoid failing on return to MobileSafari, ensure freshness!  
								if(+new Date - clickedAt < 2000) { 
									window.location = fail; 
								} 
							}, 500); 
						}; 
					} 
					$('.footer')[0].onclick = applink(appstore); 
// 

  在h5页面跳转打开新的app,进行判断(目前还有点小问题,如果有app会打开,再回来这个界面会展示下载的界面)

function jump(myurl) {	与上面判断ios的方法结合 
	if(GetMobelType.weixin) { 
		alert("是微信啊");// 水土不服就服微信  微信比较牛 第三方app必须在应用宝发布,且开通‘微下载’服务 
	} else { 
		if(GetMobelType.android) { 
			var ifr = document.createElement('iframe'); 
			ifr.src = myurl; 
			ifr.style.display = 'none'; 
			document.body.appendChild(ifr); 
			//window.location.href = "你要打开的app协议,安卓提供"; 
			window.setTimeout(function() { 
				document.body.removeChild(ifr); 
				window.location.href = "下载app的地址"; 
			}, 3000); 
		} 
		if(GetMobelType.ios || GetMobelType.iPhone || GetMobelType.iPad) { 
			alert(222); 
			var ifr = document.createElement("iframe"); 
			ifr.src = "打开app的协议"; /***打开app的协议,有ios同事提供***/ 
			ifr.style.display = "none"; 
			document.body.appendChild(ifr); 
			window.setTimeout(function() { 
				document.body.removeChild(ifr); 
			     window.location.href = "下载地址"; 
				/***下载app的地址***/ 
			}, 2000) 
		}; 
	} 
} 

  处理iframe引入微信的文章防盗链的问题 (这个在微信浏览器打开的时候,会有卡死的现象)

	$.ajaxPrefilter(function(options) { 
		if (options.crossDomain && jQuery.support.cors) { 
			var http = (window.location.protocol === 'http:' ? 'http:' : 'https:'); 
				options.url = http + '//cors-anywhere.herokuapp.com/' + options.url; 
		  } 
		}); 
		var share_link = that.list.outsideUrl; 
		console.log(share_link) 
		//微信文章地址 
		$.get( 
			share_link, 
			function(response) { 
				//    console.log("> ", response);  
				var html = response; 
				html = html.replace(/data-src/g, "src"); 
				var html_src = 'data:text/html;charset=utf-8,' + html; 
				that.list.outsideUrl = html_src; 
		}); 

  

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/13867.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论