判断app是否在本设备已经下载,若已经下载则打开APP跳转到指定页面,若未下载则跳转下载【我是大白,我是猿】

Js代码

function down(){
		var param = GetRequest();
		var goodsid = param['goodsid'];
		var type = param['type'];
		if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
			var loadDateTime = new Date();
			window.location = ""+goodsid;//schema链接
			window.setTimeout(function() { //如果没有安装app,便会执行setTimeout跳转下载页
				var timeOutDateTime = new Date();
				if (timeOutDateTime - loadDateTime < 5000) {
					window.location = ""; 
				} else {
					window.close();
				}
			}, 5000);
		}else if (navigator.userAgent.match(/android/i)) {
			var type = null;
			try {
				window.location = "xiuyuanlvie://www.xiuyuanlive.cn?type=1&goodsid="+goodsid;//schema链接或者universal link
				window.setTimeout(function() {
					window.location = "http://app.xiuyuanlive.cn/download"; //android下载地址
				}, 5000);
			} catch (e) {}
		}
	}

纯HTML+JS 我写的很简单,应该比较容易看清楚逻辑,第一步创建方法,第二部开始接参数,这边参数我是用JS去找到URL中的?后参数的,我们可以举以上例子,goodsid为商品ID,代表着商品,根据前端给出的schema链接(这个需要IOS和安卓提供过来的),这个链接的作用是可以打开我们手机下载对应的APP,因此我们跳转这个链接时,正常手机有APP是可以直接打开的,那么回顾业务需求,判断app是否在本设备已经下载,若已经下载则打开APP跳转到指定页面,若未下载则跳转下载,这不就很简单了吗,我们打开APP是有响应时间的,那么根据一个响应时间可以判断出app到底能不能打开,如果你的手机已经安装,那么一定是可以打开的,如果没有安卓,那么会一直响应前端给的这个schema链接,假如我们给这个时间做个判断,响应结束时间-现在的时间<5000的时候,说明我们的软件并没有打开,这时我们可以给出下载链接,这一步主要判断我们的APP是否安装,是否存在,不存在时则是else了,else就是跳转下载链接,就这么简单
开发时请注意:
时间不要太短,要考虑网速,若有客户网速很慢,那响应也很慢,那么我们这个就是BUG了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐