外部浏览器跳转到APP的指定页面

这周接到一个APP开发任务:

当用户从外部浏览器(如:UC、Safari)点击有关app的按钮时,实现一下功能

1、用户未安装app,点击按钮跳转到app的下载页面

2、用户已安装app,点击按钮打开app并显示指定页面(如注册,登录等)


一. 实现判断是否安装某应用, 有打开, 没用去AppStore下载

首先我们给app添加一个URL Types,用于给web打开的接口




然后我们在web的代码中添加一下js脚本

<body>
        <a href="https://itunes.apple.com/cn/app/ju53you-pin-fen-xiao-jian/id1080605326?mt=8" id="openApp">打开app</a>
        <script type="text/javascript">
            
            document.getElementById('openApp').onclick = function(e){
                var ifr = document.createElement('iframe');
                ifr.src = 'com.zttd.webApp://showMessage?https://www.baidu.com';
                ifr.style.display = 'none';
                document.body.appendChild(ifr);
                window.setTimeout(function(){
                                  document.body.removeChild(ifr);
                                  },3000)
            };
        
            </script>
    </body>
添加完以后,测试结果如下:

1、如果用户未安装app,点击按钮跳转到app的下载页面

2、用户已安装app,点击按钮只能打开app


二、实现跳转到app指定页面

在web页面里设置参数,

如果要实现跳转到指定页面,就需要传 参数 表示跳转到哪个页面,只需要在上面的网址里:即 ifr.src = 'com.zttd.webApp//参数'   

例如跳到登录页面:ifr.src = 'com.zttd.webApp//showMessage?https://www.baidu.com'

在APP里接收该参数,并解析进行跳转,需要在AppDelegate文件里实现以下两种方法,最好两种都写,否则可能接收不到数据,接收到该参数后,进行解析并跳转

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

    BOOL result = [UMSocialSnsServicehandleOpenURL:url];

    if (result ==FALSE) {

        if ([url.hostrangeOfString:@"showMessage"].location !=NSNotFound) {

            NSDictionary *dic =@{@"url" : url};  // url为 com.zttd.webApp//showMessage?https://www.baidu.com

// 通知, 实现传参数到指定页面进行操作

            [[NSNotificationCenter defaultCenter] postNotificationName:@"showMessage"object:dic];

        }

    }

    return result;

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值