zoukankan      html  css  js  c++  java
  • h5唤起app

     1 <!DOCTYPE html>
     2 <html>
     3 <!-- 经测试,android iosok了 -->
     4 <head>
     5 <meta charset="UTF-8">
     6 <title>网页呼叫app</title>
     7 <style>
     8 #zjmobliestart {
     9 font-size: 40px;
    10 }
    11 </style>
    12 </head>
    13 
    14 <body>
    15 <a onclick="util.tuneUpApp()" href="will://">clickme</a>
    16 <script>
    17 var util = {};
    18 util.tuneUpApp = function () {
    19 var browser = {    
    20 versions: function () {         
    21 var u = navigator.userAgent,
    22             app = navigator.appVersion;         
    23 return {              
    24 trident: u.indexOf('Trident') > -1,
    25              /*IE内核*/               presto: u.indexOf('Presto') > -1,
    26       /*opera内核*/               webKit: u.indexOf('AppleWebKit') > -1,
    27 /*苹果、谷歌内核*/
    28               gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
    29      /*火狐内核*/               mobile: !!u.match(/AppleWebKit.*Mobile.*/),
    30      /*是否为移动终端*/               ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/),
    31 /*ios终端*/
    32               android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
    33 /*android终端或者uc浏览器*/
    34               iPhone: u.indexOf('iPhone') > -1,
    35       /*是否为iPhone或者QQHD浏览器*/               iPad: u.indexOf('iPad') > -1,
    36     /*是否iPad*/               webApp: u.indexOf('Safari') == -1,
    37       /*是否web应该程序,没有头部与底部*/               souyue: u.indexOf('souyue') > -1,
    38               superapp: u.indexOf('superapp') > -1,
    39               weixin: u.toLowerCase().indexOf('micromessenger') > -1,
    40               Safari: u.indexOf('Safari') > -1          
    41 };     
    42 }(),
    43 language: (navigator.browserLanguage || navigator.language).toLowerCase()
    44 };
    45 
    46 if (browser.versions.ios) {
    47 location.href = 'will://';
    48 setTimeout(function () {
    49 location.href = 'http://192.168.0.140:8080/html/download.html';
    50 }, 1000);
    51 setTimeout(function () {
    52 location.reload();
    53 }, 1000);
    54 } else if (browser.versions.android) {
    55 var startTime = Date.now();
    56 var ifr = document.createElement('iframe');
    57 ifr.src = "will://share/testid";
    58 ifr.style.display = 'none';
    59 document.body.appendChild(ifr);
    60 var t = setTimeout(function () {
    61 var endTime = Date.now();
    62 if (!startTime || endTime - startTime < 600 + 200) {
    63 window.location = 'http://192.168.0.140:8080/html/download.html';
    64 } else {
    65 
    66 }
    67 }, 1000);
    68 window.onblur = function () {
    69 clearTimeout(t);
    70 }
    71 }
    72 }
    73 </script>
    74 </body>
    75 
    76 </html>
    业精于勤荒于嬉,行成于思毁于随
  • 相关阅读:
    基于C++ Qt实现的红色警戒3修改器
    Java多线程(十五):CountDownLatch,Semaphore,Exchanger,CyclicBarrier,Callable和Future
    Java多线程(十四):Timer
    Java多线程(十三):线程池
    Java多线程(十二):中断机制
    Java多线程(十一):线程组
    Java多线程(十):BlockingQueue实现生产者消费者模型
    德国语言+留学签证递交材料详解(上海)
    Java多线程(九):生产者消费者模型
    Java多线程(八):ReentrantReadWriteLock
  • 原文地址:https://www.cnblogs.com/qixianchuan/p/11155961.html
Copyright © 2011-2022 走看看