h5外部浏览器直接调起app

https://www.cnblogs.com/xyyt/p/6805944.html
记录一下:

1. 安卓端:

图片.png

其中,scheme必须是小写的,同时要求H5必须是“启动应用程序

2. h5端完整示例:

打开APP
    

3. ios端——通过URL协议实现从Safari等浏览器中跳转打开你的app
第一步:在info.plist中加入这些内容

image

其中URL identifier 可以随便取,URL Schemes 就是实现跳转URL协议的名称(可以多个)

第二步:在视图控制器中加入这样的代码用于显示跳转过来的地址:

+(void)alert:(NSString*)information{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"提示" message:[NSString stringWithFormat:@"程序通过URL协议打开,该URL为:“%@”",information] delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
    [alert show];
    [alert release];
}

第三步:在AppDelegate.m中加入这些代码

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    if(!url){
        return NO;
    }
    
    NSString *urlString=[url absoluteString];
    [ViewController alert:urlString];
    return YES;
}

测试方法:在浏览器中输入“appABC://”之后就会打开这个程序,打开后程序中会显示跳转过来的链接地址。

优化版:

 打开APP
   goApp() {
          // 安卓端跳转
          var iFrame;
          var url = "fmdisk://feemoo.app/openwith?type=0&id=720024"
          var u = navigator.userAgent;
          var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
          var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
          if (isAndroid) {
            //安卓终端使用iframe
            iFrame = document.createElement("iframe");
            iFrame.setAttribute("src", url);
            iFrame.setAttribute("style", "display:none;");
            document.body.appendChild(iFrame);
            // 发起请求后这个 iFrame 就没用了,所以把它从 dom 上移除掉
            iFrame.parentNode.removeChild(iFrame);
            iFrame = null;
            // 如果用户没有安装APP,则提示用户去安装APP
            setTimeout(() => {
              window.location.href = 'https://www.feimaoyun.com/#/softdown' // 这里可以自行写一个延时关闭的弹窗,也可以跳转至app下载地址
            }, 2000);
          } else if (isiOS) {
            //iOS终端直接页面跳转
            window.location.href = url;
            // 如果用户没有安装APP,则提示用户去安装APP
            setTimeout(() => {
              window.location.href = 'https://www.feimaoyun.com/#/softdown' // 这里可以自行写一个延时关闭的弹窗,也可以跳转至app下载地址
            }, 2000);
          } else {
            window.location.href = url;
          }
        },

你可能感兴趣的:(h5外部浏览器直接调起app)