ele.me在IOS浏览器端启动APP的技巧分析
ele.me在IOS浏览器端启动APP的技巧分析
- 巧妙利用后台重定向,在schemes启动时提示用户打开,启动不了APP时能够及时跳转至下载页面。
- 避免报错页面的出现以及用户还没来的及选择就跳转到下载页面。
- 在没有universal link时,此种方法是一种很好的解决方案。
附上ele源码
<script type="text/javascript">
"use strict";
window.onload = function() {
//尝试schemes码打开app
location.href = "eleme://";
//判断andriod还是ios还是微信
var e = window.navigator.userAgent,
i = "",
n = (new UParams).from;
if(/iphone|iPad/i.test(e) && /micromessenger/i.test(e))
return void(location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=me.ele");
if(/Android/i.test(e) && /micromessenger/i.test(e))
return void document.write('\n <div class="wechat-warning">\n <img src="//static11.elemecdn.com/eleme/activities/dist/download/tip.0ccdda.png" alt="下载应用请点击右上角按钮选择[在浏览器中打开]">\n <div>下载应用请点击右上角按钮<br/>选择[在浏览器中打开]</div>\n </div>\n ');
if(!/iPhone|iPad/.test(navigator.userAgent))
return void(location.href = "//uxmgnt.ele.me/download/" + (n ? n : "eleme"));
//后台重定向处理(关键步骤)
i = "//uxmgnt.ele.me/download/eleme";
//ajax请求,怀疑是统计下载量
var o = new XMLHttpRequest; //
o.open("POST", location.origin.replace(/h\./, "mainsite-restapi.") + "/ugc/download/channels/ios"),
o.withCredentials = !0;
var t = {
source: n || "",
is_web: !0
};
o.onload = o.onerror = function() {
//触发后台重定向
i && (location.href = i)
},
o.send(JSON.stringify(t))
};
// withCredentials解惑
// 如果需要读取读取cookie:
// 需要配置参数:Access-Control-Allow-Credentials:true
// 同时在xhr发起请求的时候设置参数withCredentials为true:
// var xhr = new XMLHttpRequest(); ;
// xhr.open('GET', 'http: //b.com/cros/ajax.php', true);
// xhr.withCredentials = true;
// xhr.onload = function () {
// alert(xhr.response);//reposHTML;
// };
// xhr.onerror = function () {
// alert('error making the request.');
// };
// xhr.send();
// 如:Access-Control-Allow-Origin:http://a.com表示允许a.com下的域名跨域访问;
</script>
原文来至:http://www.cnblogs.com/chunlei36/articles/6287148.html
ele.me在IOS浏览器端启动APP的技巧分析的更多相关文章
- 【js】手机浏览器端唤起app,没有app就去下载app 的方法
这种功能的作用: 1.一般公司有自己的app,而app是需要不断有新用户涌入才能持续运营,达到不错的收入.就需要使用这种方式进行引入新的用户. 2.一些内容在网页端体验不好,或者一些功能需要app内才 ...
- fiddler实现B/S端、APP抓包分析遇到的各种疑问
阅读本文前您需要先下载fiddler并成功安装,并且要有一丢丢测试和接口基础或者在学习fidder时遇到了问题,或许本文可以帮助到你 一.B/S端抓包 Fiddler设置 1. 官网下载fiddler ...
- Netty之旅三:Netty服务端启动源码分析,一梭子带走!
Netty服务端启动流程源码分析 前记 哈喽,自从上篇<Netty之旅二:口口相传的高性能Netty到底是什么?>后,迟迟两周才开启今天的Netty源码系列.源码分析的第一篇文章,下一篇我 ...
- Netty入门一:服务端应用搭建 & 启动过程源码分析
最近周末也没啥事就学学Netty,同时打算写一些博客记录一下(写的过程理解更加深刻了) 本文主要从三个方法来呈现:Netty核心组件简介.Netty服务端创建.Netty启动过程源码分析 如果你对Ne ...
- Android在浏览器启动APP
要想在浏览器启动APP的方法例如以下: 在须要跳转的ACTIVITY中加入intent-filter的相关信息: <intent-filter> <data android: ...
- 浏览器通过Scheme协议启动APP中的页面
在APP开发过程中,通过外部浏览器调起APP页面的场景也很普遍使用.下面就介绍一下通过外部H5页面唤起APP中页面的通用方法. 1.首先需要在AndroidMainifest.xml中对你要启动的那个 ...
- ios移动端浏览器点击事件失效的解决方案
点击事件失效的原因可能是因为,你用了事件代理了, 比如这样 $(document).on("click",".fd",function(){ }) 这段代码在安 ...
- ios下微信浏览器如何唤醒app?app已上架应用宝
android下可以通过在应用宝微下载地址后面加参数&android_schema='应用schema'来实现,ios下如何实现? ios下微信浏览器如何唤醒app?app已上架应用宝 > ...
- appium启动app(ios)
Appium启动APP至少需要7个参数 'platformVersion','deviceName'.'udid'.'bundleId'.'platformName'.'automationNam ...
随机推荐
- Plan : 破晓
题记 : 不要因为走的太远而忘记自己为什么而出发. 1. 白书(算法竞赛入门经典)看完(每一句话都要读懂) 2. 每次听完课把当天内容复习完(自习室10点以后复习) 3. 微机实验要提前预习(把实验报 ...
- 从Java到C (大纲)
Binder机制,从Java到C (大纲) 转载请标注:张小燕:http://www.cnblogs.com/zhangxinyan/p/3487381.html 前段时间一直在看有关Binder ...
- vijos1060 隔板法
排列组合问题 之前没有学过隔板法,随便学习了一下 其实挺好理解的 附上题解: 先只考虑一种球:因为有n个盒子每个盒子可以放任意多球,还可以空出来任意多球.所以可以考虑为n+1个盒子,最后一个盒子里面是 ...
- NotePad++安装和配置C/C++开发插件
NotePad++ - 安装和配置C/C++开发插件 | NotePad++ - Install and Configure plugins for develop C/C++ http://aofe ...
- C#奇葩关键字
C#奇葩关键字——忐忑 那就认识认识吧,可是又太多,所以也只能是想到哪里是哪里,我们这就让思绪自由飞翔一会吧! 1.@ 这个东东看似和邮件有关啊,但是在C#的世界里,可跟邮件没有一毛钱关系,它是str ...
- XML中的五个保留字符及实体引用
字符名称 字符 实体引用 和 & & 大于号 > > 小于号 < < 单引号 ‘ ' 双引号 “ " 在XML文档中,构成元素内 ...
- 依赖注入DI
说AOP不得不提依赖注入,先来看看一个实例.通过实例来解释依赖注入和它的用途. 我们现在要设计一个关于衣服的上架功能,有时候需要进行促销,我们现在知道的促销方式有打1折,和打2折. 最初的方案: pu ...
- Arduino live weather broadcasting 实时天气站
Live broadcasting with arduino get a pc , make it run linux. make arduino catch the weather sensor a ...
- JAXP的SAX解析
* 使用Sax解析XML文档 * * 使用Sax解析文档和DOM解析不一样. * 概述: * 是一种XML解析的替代方法.相比于DOM,SAX是一种速度更快,更有效的方法.它逐行扫描文档,一 ...
- 怎样清除SWAP里的文件
在vim 编辑一个文件时断了网,文件就留在SWAP里,但我再vim这个文件保存后,再打开时又提示SWAP里有这文件了,此时swapoff -a后再ls -al查看,把文件所在目录里*.swp结尾的文件 ...