• 通过JS下载 or 唤起App


    判断唤起app的连接是否在WeChat中打开

    let isWeiXin = navigator.userAgent.toLowerCase().indexOf('micromessenger') != -1;
    // 监测手机设备的系统
    systemType(isWeiXin);
    

    判断手机设备为iOS的方法

    // iOS
    function toiOS() {
    	$('#DBL').click(function() {
    		/* [app scheme码]:// */
    		window.location.href = 'scheme://';
    		setTimeout(function() {
    			// iOS App Store下载地址
    			window.location = 'url';
    		}, 300);
    		setTimeout(function() {
    			window.location.reload();
    		}, 1000)
    	});
    }
    

    判断手机设备为Android的方法

    // Android
    function toAndroid(isWeiXin) {
    	if (isWeiXin) {
    		// 在微信中打开链接的提示信息
    		$('#DBL').click(function() {
    			$('#zz').fadeIn();
    		});
    		$('#zz').click(function() {
    			$(this).fadeOut();
    		});
    	} else {
    		var ifr = document.createElement('iframe');
    		/* Android app scheme码 打开地址 */
    		ifr.src = 'scheme://host/openwith';
    		ifr.style.display = 'none';
    		document.body.appendChild(ifr);
    
    		$('#DBL').click(function() {
    			// Android.apk下载地址
    			window.location = 'url';
    		});
    	}
    }
    

    判断手机系统类型(AndroidiOSWeChat

    // 判断手机系统
    function systemType(isWeiXin) {
    	let u = navigator.userAgent,
    		app = navigator.appVersion;
      
    	// 监测设备
    	let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
    		isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/);
    
    	// iOS 设备判断
    	if (isiOS) toiOS();
    	// Android 设备判断
    	if (isAndroid) toAndroid(isWeiXin);
    }
    


    在WeChat中,因为微信的安全机制的问题,通过微信唤起不同设备的app的方法也存在一定的差异;iOS与Android的安全机制不同,唤起各自设备的app的方法也有所差别。
    iOS所有的app都是在App Store中完成的,所以可以通过微信直接唤起苹果的App Store来实现app的唤起和下载;
    Android中app的来源五花八门,可以通过app应用市场、浏览器等来实现app的唤起和下载;因为微信的安全机制,无法通过微信直接唤起app或下载app,只能通过微信提供的插件“浏览器”中打开当前链接,通过浏览器来实现app的下载和打开功能。

  • 相关阅读:
    JDBC数据库连接池的实现
    在java项目中引入dll文件
    动态调用WebService(支持SaopHeader)
    获取CPU,硬盘,网卡信息
    js调用本地程序
    ClickOnce发布的一点小经验总结
    为程序设置快捷键
    构建返回友好信息的WebService
    使用DataReader分页的测试
    【bug】internal class GetCountOfEntitiesByCriterionHibernateCallback : IHibernateCallback<int>
  • 原文地址:https://www.cnblogs.com/zxk5211/p/web_13.html
Copyright © 2020-2023  润新知