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

  1. function  GetMobelType()  {                
  2. var  browser  =   {                    
  3. versions:   function()  {                        
  4. var  u  =  window.navigator.userAgent;                        
  5. return  {                            
  6. trident:  u.indexOf('Trident')  >  -1, //IE内核
  7. presto:  u.indexOf('Presto')  >  -1, //opera内核
  8. Alipay:  u.indexOf('Alipay')  >  -1, //支付宝
  9. webKit:  u.indexOf('AppleWebKit')  >  -1, //苹果、谷歌内核
  10. gecko:  u.indexOf('Gecko')  >  -1  &&  u.indexOf('KHTML')  ==  -1, //火狐内核
  11. mobile:  !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
  12. ios:  !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
  13. android:  u.indexOf('Android')  >  -1  ||  u.indexOf('Linux')  >  -1, //android终端或者uc浏览器
  14. iPhone:  u.indexOf('iPhone')  >  -1  ||  u.indexOf('Mac')  >  -1, //是否为iPhone或者安卓QQ浏览器
  15. //iPhone: u.match(/iphone|ipod|ipad/),//
  16. iPad:  u.indexOf('iPad')  >  -1, //是否为iPad
  17. webApp:  u.indexOf('Safari')  ==  -1, //是否为web应用程序,没有头部与底部
  18. weixin:  u.indexOf('MicroMessenger')  >  -1, //是否为微信浏览器
  19. qq: u.match(/\sQQ/i) == " qq", //是否QQ
  20. Safari:  u.indexOf('Safari')  >  -1,
  21.   ///Safari浏览器,
  22.  
  23.                         
  24. };                    
  25. }()                
  26. };                
  27. return  browser.versions;            
  28. }

  截取浏览器地址拼接参数

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

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

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

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

  1. function jump(myurl) { 与上面判断ios的方法结合
  2. if(GetMobelType.weixin) {
  3. alert("是微信啊");// 水土不服就服微信 微信比较牛 第三方app必须在应用宝发布,且开通‘微下载’服务
  4. } else {
  5. if(GetMobelType.android) {
  6. var ifr = document.createElement('iframe');
  7. ifr.src = myurl;
  8. ifr.style.display = 'none';
  9. document.body.appendChild(ifr);
  10. //window.location.href = "你要打开的app协议,安卓提供";
  11. window.setTimeout(function() {
  12. document.body.removeChild(ifr);
  13. window.location.href = "下载app的地址";
  14. }, 3000);
  15. }
  16. if(GetMobelType.ios || GetMobelType.iPhone || GetMobelType.iPad) {
  17. alert(222);
  18. var ifr = document.createElement("iframe");
  19. ifr.src = "打开app的协议"; /***打开app的协议,有ios同事提供***/
  20. ifr.style.display = "none";
  21. document.body.appendChild(ifr);
  22. window.setTimeout(function() {
  23. document.body.removeChild(ifr);
  24.      window.location.href = "下载地址";
  25. /***下载app的地址***/
  26. }, 2000)
  27. };
  28. }
  29. }

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

  1. $.ajaxPrefilter(function(options) {
  2. if (options.crossDomain && jQuery.support.cors) {
  3. var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
  4. options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
  5. }
  6. });
  7. var share_link = that.list.outsideUrl;
  8. console.log(share_link)
  9. //微信文章地址
  10. $.get(
  11. share_link,
  12. function(response) {
  13. // console.log("> ", response);
  14. var html = response;
  15. html = html.replace(/data-src/g, "src");
  16. var html_src = 'data:text/html;charset=utf-8,' + html;
  17. that.list.outsideUrl = html_src;
  18. });

  

ios存在唤起的时候出现原生弹窗的问题,现在接入了第三方,已解决

判断终端类型、微信的文章防盗链、h5页面跳转打开新的app、跳转到app市场的更多相关文章

  1. 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)

    最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...

  2. 微信小程序内联h5页面,实现分享

    在小程序内直联h5的页面(pages/webview/webview.js),该页面为<web-view>的容器,使用<web-view>组件 <web-view wx: ...

  3. 微信公众号开发之H5页面跳转到指定的小程序

    前言: 最近公司有一个这样的需要,需要从我们在现有的公众号H5页面中加一个跳转到第三方小程序的按钮.之前只知道小程序之间是可以相互跳转的,今天查阅了下微信开发文档原来现在H5网页也支持小程序之间的跳转 ...

  4. 微信图片反防盗链 用js不太成熟的解决方式 仅供参考

    $("#imgDiv img").each(function () { var img = $(this); var img_src = img.attr("src&qu ...

  5. Nginx 之四: Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能

    一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...

  6. Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能

    一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...

  7. 11.25-11.27 配置防盗链,访问控制(Directory,FilesMatch)

    4月17日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 扩展 几种限制ip的方法 http://ask.apelearn.com/qu ...

  8. 教你判断一个APP页面是原生的还是H5页面 。(还没看)

    来源:https://www.25xt.com/appdesign/11851.html 刚好是周末,无意之间学堂君在收集相关资料的时候,发现有部分童鞋在问<如何判断一个APP页面是不是H5页面 ...

  9. 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET

    先看效果 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢 ...

随机推荐

  1. OpenStack Trove组件WSGI和RPC调用流程(参考调用的整个过程)

    参考博文:https://blog.csdn.net/bill_xiang_/article/details/72909927

  2. Java -- XStreamAlias 处理节点中的属性和值

    XStreamAlias 可以把objec和xml相互转换,但是有时候节点带有属性和值就需要特殊处理下: <?xml version="1.0" encoding=" ...

  3. Echarts报错 Can't read property 'getWidth' of null

    统计图报错: 这里的报错与echarts无关,与zrender有关,zrender是echarts依赖的canvas绘图库 你不需要了解zrender,这个问题是你代码出了错 谨记::代码的错

  4. WordCount 3

    学号:201631062130.201631062304 码云地址:https://gitee.com/xnsy/WordCountPlus 一.代码互审情况:在代码的互审过程中,在命令和路径没有没有 ...

  5. 2018面向对象程序设计(Java)第18周学习指导及要求

    2018面向对象程序设计(Java) 第18周学习指导及要求(2018.12.27-2018.12.30)   学习目标 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设 ...

  6. OpenStack安装-MySQL,Rabbitmq,memcache.

    基于前一篇的基本环境,现在我们开始安装MySQL. 在node1上面安装MySQL: [root@linux-node1 ~]# yum install mariadb mariadb-server ...

  7. python argparse(参数解析)模块学习(一)

    class ArgumentParser(_AttributeHolder, _ActionsContainer): """Object for parsing comm ...

  8. [C++]字符串相关操作

    获取字符串长度 String str str.length(); //获取String类型字符串长度 str.size(); //STL获取容器中元素个数 Char* s strlen(s); //以 ...

  9. 【转载】Windows上那些值得推荐的良心软件-整理 easybcd 引导工具 easyuefi 引导工具

    您查询的关键词是:清理dism知乎 以下是该网页在北京时间 2019年03月17日 21:56:16 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 htt ...

  10. java_21 Set接口、HashSet类、LinkedSet类

    1Set 包含不可重复元素的集合,是一个无序集合. 子类:hashSet .LinkedSet 2.含有父类Collection的方法 add(): 如果 set 中尚未存在指定的元素,则添加此元素( ...