使用iframe从网页调起移动端应用

比如想在网页中调起支付宝,我们可以创建一个iframe,src为:

alipayqr://platformapi/startapp?saId=10000007&clientVersion=3.7.0.0718&qrcode={支付二维码扫描的url}

浏览器接收到这个url请求发现未知协议,会交给系统处理,系统就能调起支付宝客户端了。我们还能趁机检查一下用户是否安装客户端:给iframe设置一个3-5秒的css3的transition过渡动画,然后监听动画完成事件,如果用户安装了客户端,那么系统会调起,并将浏览器转入后台运行,进入后台的浏览器一般不会再执行css动画,这样,我们就能通过判断css动画执行的时长是否超过预设来判断用户是否安装某个客户端了:

/**
 * 调起客户端
 * @param url {String}
 * @param onSuccess {Function}
 * @param onFail {Function}
 */
module.exports = function(url, onSuccess, onFail){
    // 记录起始时间
    var last = Date.now();

    // 创建一个iframe
    var ifr = document.createElement(‘IFRAME‘);
    ifr.src = url;
    // 飘出屏幕外
    ifr.style.position = ‘absolute‘;
    ifr.style.left = ‘-1000px‘;
    ifr.style.top = ‘-1000px‘;
    ifr.style.width = ‘1px‘;
    ifr.style.height = ‘1px‘;
    // 设置一个4秒的动画用于检查客户端是否被调起
    ifr.style.webkitTransition = ‘all 4s‘;
    document.body.appendChild(ifr);
    setTimeout(function(){
        // 监听动画完成时间
        ifr.addEventListener(‘webkitTransitionEnd‘, function(){
            document.body.removeChild(ifr);
            if(Date.now() - last < 6000){
                // 如果动画执行时间在预设范围内,就认为没有调起客户端
                if(typeof onFail === ‘function‘){
                    onFail();
                }
            } else if(typeof onSuccess === ‘function‘) {
                // 动画执行超过预设范围,认为调起成功
                onSuccess();
            }
        }, false);
        // 启动动画
        ifr.style.left = ‘-10px‘;
    }, 0);
};
时间: 2024-07-30 10:11:38

使用iframe从网页调起移动端应用的相关文章

通过网页调起客户端程序

果冻栋吖原创内容:未经允许禁止转载~ 怎么像百度云那样通过网页调起客户端程序? 先说下我的经历,愚蠢的我直接同C#CS程序调起本地程序的方法,写在了网页上,显然,这样是不对的,这样调起的是服务器的程序,并不是客户端程序. 那么,具体是怎么操作的呢? 代码有很多不足之处,肯定会有更好的办法,如果您有什么建议,请联系我QQ:1772829123或者评论.请各位大佬不吝赐教! 网页的代码挺简单, MyApp: 是要调起的程序,需要加注册表信息 aadmin,123321是传递的参数,实际是用字符串传递

网页调启用qq对话聊天客服窗口的链接地址方法大全(包含移动端)

z转自:    http://www.wazhuti.com/1781.html 在PC端,腾讯的QQ软件还是应用最为广泛的即时通讯工具了,除了网站自动的一些对话软件外,qq可以有效的将用户留存下来,长线发展,所以在网站添加qq对话聊天窗口的链接尤为重要,尤其是对一些半商业型的网站来讲,所以大挖今天给大家推荐一下多用的qq聊天唤醒链接方法具体链接如下,只需要调整下qq号即可,方便实用. 手机移动端调用QQ客服对话聊天窗口: <a target="_blank" href=&quo

非微信内置浏览器中的网页调起微信支付的方案研究

问题来源 之前在app中集成过微信支付,当时还写了一篇扫坑贴,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付. 后来由于业务需要在我们app的WebView中打开第三方店铺的网页,在第三方网页中有微信支付按钮,测试反馈说ios可以调起微信支付,而android不可以.后来网上看到说微信内置Webview和京东的网页也可以调起微信支付,微信自己没什么奇怪的,而京东可以的话,如果它跟微信没什么合作协议的话,那么其他app应该也可以在网页中调用微信

iframe嵌套网页

把iframe嵌套的网页放在某一位置,只需在iframe外加个框,改变框的位置即可,如: <!doctype html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name=

[转载] iframe嵌入网页的用法

iframe并不是很常用的,在标准的网页中非常少用.但是有朋友经常问到,下面我简单地介绍一下它的用法,你只要熟练掌握这些参数足矣. <iframe>也应该是框架的一种形式,它与<frame>不同的是,iframe可以嵌在网页中的任意部分.我们举第一个例子,具体代码如: <iframe width=420 height=330 frameborder=0 scrolling=auto src=URL></iframe>,这里的URL可以是相对路径,也可以是绝对

iframe引入网页

<!DOCTYPE html> <html> <body> <iframe src="/example/html/demo_iframe.html" name="iframe_a"></iframe> <p><a href="http://www.w3school.com.cn" target="iframe_a">W3School.com.c

vue 使用 &lt;iframe&gt; 嵌入网页 地址实现动态配置

<template> <div id="app"> <iframe style="border:none" :width="searchTableWidth" :height="searchTableHeight" v-bind:src="reportUrl" ></iframe> </div> </template> <scri

教你利用iframe在网页中显示天气

来源:http://www.ido321.com/921.html css: 1: *{margin:0;padding:0;list-style-type:none;} 2: a,img{border:0;} 3: body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";} 4: 5: /* demo */ 6: .demo{width:800px;margin:0 auto;} 7: .demo div{margin:40px

网页自动适应移动端页面展示

今天给客户端写一个用户提交选择语言的页面,在电脑上使用chrome调试好之后,使用移动端模式能正常显示.但是从移动端打开的时候并不能正常显示,显示为电脑样式. 之前有做过一个自动适应的页面,分析代码发现在head标签中加入如下代码即可: <meta name="viewport"content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">