iOS链接跳转到App

iOS实现在webview页面内点击链接,跳转指定App 思路分析: iOS内应用之间跳转都会用到 URL Schemes这个东西,简单的讲,这个就是用来定义app身份的一个id识别,这里定义了之后,手机运行过这个app之后,会在系统内部记录下这里的身份识别,下次,其他app想访问该app,只要请求那里定义的URL Schemes,手机自己就能找到这个app,从而实现跳转。。。   好了,代码测试如下: 1、在项目里,Info最下 阅读详情

可行的方案大概有三种:

一、直接使用URL Scheme。(优点:十分简单,在plist文件中配置一个scheme,点击短信中的scheme或者将scheme输入到浏览器中就可以直接跳到App中。 缺点:当手机上没有安装App时,短信中点击scheme会没有反应,浏览器中会访问失败。而且在微信和QQ中这种方式是被禁用的)。

二、使用iOS9之后的新特性,通用链接(Universal Links)。

三、让后台人员写一个可以访问的网页,点击短信中的链接,跳转到网页,在网页中判断是iOS端还是安卓端,然后自动跳转对应的scheme,如果手机上安装了App,则直接跳到App,如果没有安装App,则停留在当前网页,在网页上有一个去下载的按钮,点击按钮可以去下载App。

接下来就细说一下三种方案的实现过程:

方案一、直接使用URL Scheme。

如果想解析对应的内容跳转到对应的界面只需要在Appdelegate的-(BOOL)application: openURL: options:的方法里判断传入进来的url链接后面的参数,进行不同的操作即可,如下

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{  

    NSString *urlStr = url.absoluteString;  
    if ([urlStr hasPrefix:@"prefx"]) {  
        //获取参数  
        NSArray *paramerArray = [urlStr componentsSeparatedByString:@"/"];  
        NSLog(@"paramerArray- %@",paramerArray);  
    }  
    return YES;  
}  

方案二、iOS9之后的新特性,通用链接(Universal Links)

什么是通用链接(Universal Link)?

为了更好的用户体验,苹果针对iOS9或者以上系统,推出通用链接(Universal Link):一种能够方便的通过传统 HTTP 链接启动应用程序, 使用相同的网址打开网站和App。通过一个通用的链接便可实现,当移动设备里面已经有了某个应用,在点击了这个链接后便可实现深度链接而直接进入应用内的某个特定页面;如果手机内并没有该应用,可打开设定的网址(例如应用的落地下载页面)。具体可以查看官方的说明文档。

1.先决条件:你必须有一个域名,且这个域名需要支持https。

2.需要在开发者中心做配置:找到对应的App ID,在Application Services列表里有Associated Domains一条,把它变为Enabled就可以了。

9hRUaV.png

3.打开工程配置中的Associated Domains,在其中的Domains中填入你想支持的域名,必须以applinks:为前缀。

9hRB24.png

4.创建一个内容为json格式的文件,苹果将会在合适的时候,从我们在项目中填入的域名请求这个文件。这个文件名必须为apple-app-site-association,没有后缀名,文件内容大概是这样子:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "9JA89QQLNQ.com.apple.wwdc",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "ABCD1234.com.apple.wwdc",
                "paths": [ "*" ]
            }
        ]
    }
}

说明:

appID:组成方式是 teamId.yourapp’s bundle identifier。如上面的 9JA89QQLNQ就是teamId。登陆开发者中心,在Account - Membership里面可以找到Team ID。

paths:设定你的app支持的路径列表,只有这些指定的路径的链接,才能被app所处理。星号的写法代表了可识别域名下所有链接。

5.上传该文件到你的域名所对应的根目录或者.well-known目录下,这是为了苹果能获取到你上传的文件。上传完后,自己先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,应该是直接下载apple-app-site-association文件。

验证
在iOS设备的短信中点击链接,就会直接跳转到你的app了。

或是你将要测试的链接在Safari中打开,在出现的网页上方下滑,可以看到有在”XX”应用中打开:

9hR2a6.png

在微信的网页浏览器中也是可以的,虽然微信屏蔽了所有的scheme方式跳转到其它app,但是Universal Links是由系统直接处理的,微信屏蔽不了,这也就实现了从微信跳转到我们的app。

苹果为了方便开发者,提供了一个网页来验证我们编写的这个apple-app-site-association是否合法有效,进入验证网址进行验证:

9hR4Re.png

进入app后的处理
现在用户点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。
我们需要在工程里的 AppDelegate 里实现方法

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
    {
        NSURL *url = userActivity.webpageURL;
        if (url是我们希望处理的)
        {
            //进行我们的处理
        }
        else
        {
            [[UIApplication sharedApplication] openURL:url];
        }
    }

    return YES;
}

方案三、让后台人员写一个可以访问的网页,点击短信中的链接,跳转到该网页,在网页中判断是iOS端还是安卓端,然后自动跳转对应的scheme,如果手机上安装了App,则直接跳到App,如果没有安装App,则停留在当前网页,在网页上有一个去下载的按钮,点击按钮可以去AppStore中下载App。

如果需要跳到指定页面,需要在发送短信时让后台人员将参数拼接在链接后边,之后拼接到scheme后面带到App中,然后我们在AppDelegate的-(BOOL)application: openURL和-(BOOL)application: openURL: options:的方法里接收传入进来的url链接后面的参数,之后进行指定页面的跳转就可以了。

ESP32S3电池电量监测实战:从分压电路到IDF组件配置(附GitHub源码) 本文详细介绍了ESP32S3电池电量监测的完整实战方案。从硬件分压电路的电阻选型、滤波设计,到软件层面利用ESP-IDF的ADC校准机制提升精度,并重点讲解了如何集成bat_monitor开源组件快速实现电压采集、电量计算、充电检测与事件通知。文章提供了从原理到调试的完整指南和GitHub源码,帮助开发者构建稳定可靠的物联网设备电源管理系统。 阅读详情

相关推荐

基于STM32与ESP8266的MQTT协议实现阿里云物联网平台远程LED控制

本文详细介绍了如何利用STM32单片机与ESP8266 Wi-Fi模块,通过MQTT协议连接阿里云物联网平台,实现远程控制LED灯的完整物联网项目。内容涵盖硬件连接、阿里云平台配置、MQTT协议与AT指令解析、STM32代码实战以及数据解析与调试技巧,为嵌入式开发者提供了一个清晰、实用的物联网入门实践指南。

svm4gardener的博客 793

小程序、网页跳转App的原理

从不同的渠道,如小程序、二维码、网页等,直接跳转到App内对应的页面,并传递相关的参数信息,已经由拥有深度链接技术的SDK实现了,App只需接入这类SDK即可获得多样化跳转的功能。本文将详细介绍多样化跳转的原理。

apkkkk的博客 3457

PyTorch GPU版本安装避坑指南:解决RuntimeError: No CUDA GPUs are available报错

本文详细解析了PyTorch GPU版本安装过程中常见的`RuntimeError: No CUDA GPUs are available`报错问题,从硬件驱动检查、CUDA Toolkit与cuDNN安装到PyTorch GPU版本的正确配置,提供了全面的避坑指南和实战验证方法,帮助开发者高效搭建深度学习开发环境。

r2s3t4的博客 298

【Android】点击短信链接唤起APP的方案实践

在很多业务场景中,需要点击短信链接跳转到App的指定页面。在Android系统中,想要实现这个功能,可以通过DeepLink或AppLink实现。 DeepLink是Android系统最基础、最普遍、最广泛的外部唤起App的方式,不受系统版本限制。 当用户点击链接时,系统会弹出弹窗让用户选择使用哪个App来处理这个链接,如下图所示: 在AndroidManifest文件中需要唤起的activity中加入intent-filter,监听对应的链接。代码如下: 注意:由于一个inte

LeeDuoZuiShuai的博客 5839

Skiplist,B,B+tree,LSM tree

SkipList 理解(如何实现): 即使是有序的链表,查找的时间复杂度也是O(n),但链表不能随机访问所以不适用于二分查找,使得查找的时间复杂度为O(logn)。 于是将有序链表和二分查找结合得到了SkipList,类似于二叉搜索树,这是一种以空间换时间的算法,通过在每个节点中增加向前的指针,从而提升查找效率(如下图所示)。 一开始如a所示,是一个有序的链表,时间复杂度O(n)。随后建立了e所示的SkipList,从最顶层往下查找,可以跳过许多元素,减少查找次数。 ​

weixin_45875458的博客 947

Unity3d实现红外热成像效果

1.将需要在红外图像中高亮的物体设置到图层PostProcessing。 2.新建一个相机CameraHighLight,设置其Culling Mask为PostProcessing,也就是在这个相机中只有PostProcessing图层的物体可见。 3.新建一个RenderTexture,命名为HightLightRt,将CameraHighLight的Target Texture设HightLightRt。 4.新建一个相机Camera2,这个相机用于显示其他物体。 接下来将CameraHigh

zouxin_88的专栏 8328

用js实现点击链接跳转APP对应页面

这不是一篇严格意义上的原创,参考了很多大佬的文章, 下面根据自己的情况做了一下整理。 近两天,接到公司的需求----点击 H5 的购买按钮,跳转到 APP 对应的页面。啊! 一脸懵! 还等啥,赶紧查资料啊。 下面的描述分为两点: js 的判断与跳转 URL Scheme 、Universal link 、App link 的区别 通过 js 判断与跳转的思路是这样的 通过 let u = navigator.userAgent 判断浏览器的系统类型及版本信息 通过 u.indexOf() 判断系统为

liliy__的博客 5668

YOLOv11-seg改进系列 | 引入CMTFNet(TGRS2023)+TransNeXt(CVPR2024)的C3k2_MSMHSA_CGLU模块,多尺度空洞注意力扩大感受野,增强复杂背景下

本文提出一种改进YOLOv11分割模型的C3k2_MSMHSA_CGLU模块,融合多尺度多头自注意力(MSMHSA)和卷积门控线性单元(CGLU)。MSMHSA通过多尺度空洞卷积提取不同感受野特征,生成跨尺度注意力,降低计算量同时保留全局上下文。CGLU采用卷积门控机制增强特征变换能力。实验表明,改进后模型参数量仅增加7.8%,GFLOPs增加4.2%,显著提升了多尺度目标检测性能,尤其适用于遥感图像等复杂场景。该模块有效解决了原始C3k2感受野有限、缺乏全局建模能力的问题。

qq_44224801的博客 201

短链或H5唤醒(跳转)APP应用

5.生成的assetlinks.json文件放到官网域名下/.well-known/assetlinks.json。在android的AndroidManifest.xml文件下相应active下添加下方代码.url scheme链接 teenpattiacepro://richpatti.com。短链跳转到APP,当如果用户手机不存在APP(某个应用)将会进入到官网页面。3.完成第二步后,会自动在选定的activity中生成如下代码。4.配置生成清单文件,操作步骤图。app links实现。

dupha的博客 5270

CodeX 登录报错 os error 10013?一键修复 CodeX 无法登录问题(亲测有效)

CodeX 登录时报 os error 10013?本文提供快速修复方案,实测有效,彻底解决登录报错:登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013)的问题💡

XiaoqiangClub的博客 2934

rk3568 修改开机动画

bootanimation.zip是一个Android设备启动时播放的动画文件,它包含了一系列的图片和描述文件,用于描述动画的播放顺序和持续时间。

weixin_35723192的博客 2729

微信H5页面点击直接跳转app-微信开放标签

开发微信H5项目时,需要从h5直接跳转至app,绞尽脑汁调研一番后,发现微信开放标签能实现,but环境配置和测试流程真的很复杂,真的配置四小时,开发仅需30分钟,经过不断踩坑终于上线,踩过的坑都给你们总结出来啦,如果能帮助到你,帮忙点赞收藏关注一下吧。微信开放标签https//developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html。把线上地址代理到测试地址。尽量多输出错误log信息判断是哪里出错。.........

weixin_43522687的博客 5946

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ios开发跳转safari_阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页

最近为了更好地接触移动Web 开发狠心购买了一台ipad mini(之前一直都是借同学的,借多了就不好意思了)。拿来调试DeveMobile 与EaseMobile 主题时候发现了不少问题,现在在一个个解决中。其中一个就是这个iOS Web APP中点击链接跳转到Safari 浏览器新标签页(窗口)的问题。问题说明iOS 上的Safari 浏览器中有一个“发送到屏幕”的功能(虽然很多小白用户都不...

weixin_33772442的博客 1682

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ios html跳转appstore,iOS 获取appStore的链接地址,从app中跳转 appStore中应用

从app中跳转到appStore中,分为1.取得app在appStore中的链接地址mac打开iTunes,在右上角中的搜索框中输入你的应用名称。在弹出的菜单中,选择复制链接,得到该应用的链接地址:https://itunes.apple.com/cn/app/jie-zou-da-shi/id493901993?mt=8然后将 http:// 替换为 itms:// 或者 itms-apps:/...

weixin_35734364的博客 1362

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

iOS点击短信中的链接跳转到App

现在有这样一个需求:用户点击短信上的链接跳转到我们的App中或者App中的指定页面。 可行的方案大概有三种: 一、直接使用URL Scheme。(优点:十分简单,在plist文件中配置一个scheme,点击短信中的scheme或者将scheme输入到浏览器中就可以直接跳到App中。 缺点:当手机上没有安装App时,短信中点击scheme会没有反应,浏览器中会访问失败。而且在微信和QQ中这...

大飞哥的专栏 3万+

html点击打开html页面,ios App加载本地HTML网页,点击网页链接跳转到app页面的方法...

搜索热词一、如何在APP里加载本地html文件内容:首先准备一个html文件,比如内容如下:titlego to app接下来,在APP里定义一个UIWebView,用来显示html文件内容://定义一个webviewUIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,20,375/WI * WIDTH,667/HI...

weixin_34696129的博客 902

IOS APP只能打开网站首页,点击内部的链接会跳转到safari浏览器?

IOS APP只能打开网站首页,点击内部的链接会跳转到safari浏览器? 在您的网站head里添加以下script代码,可以解决此问题。 //本脚本解决点击后跳出safari的问题 (function(){ if ("standalone" in window.navigator && window.navigator.standalone) { var d, l = false; document.addEventListener("click", function(i)

mmz8的专栏 1425

iOS点击链接跳转到App Store上的应用内

// appId 为iTunes Connect上具体应用里的Apple ID Int appId = 111111111; NSString *appUrl = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/id%d",appId]; // 可以使用https://itunes.apple.com/

徐通的博客 2891

ios html转换成网页,ios App加载本地HTML网页,点击网页链接跳转到app页面的方法

一、如何在APP里加载本地html文件内容:首先准备一个html文件,比如内容如下:titlego to app接下来,在APP里定义一个UIWebView,用来显示html文件内容://定义一个webviewUIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20, 375/WI * WIDTH, 667/HI ...

weixin_32348697的博客 670

H5中使用通用链接universallink跳转iOS App的坑

摘要:本文详细介绍了iOS通用链接(Universal Links)的配置与使用流程。首先阐述了传统scheme跳转的局限性,然后分步骤说明通用链接的配置方法,包括网站端apple-app-site-association文件的设置和Xcode中的关联域名添加。重点分析了H5页面使用通用链接时需要注意的关键问题:不同域名策略、用户点击触发要求、iOS记忆行为等,并提供了代码示例和优化建议。文章还指出了常见的坑点,如文件修改需重装App、iOS会记忆用户选择行为等,为移动端H5开发实现流畅的App跳转提供了完

devil_0311的博客 981

前端uni-app检测手机系统是iOS还是android(可实现根据手机系统跳转App下载链接)

快速实现检测手机系统是iOS还是android(可实现根据手机系统跳转App下载链接);下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?title: '检测手机系统iOS/android系统跳转链接下载App'this.title = "当前手机系统: android";this.title = "当前手机系统: iOS";#### JS代码 (引入组件 填充数据)//对IOS系统的移动端页面做点什么。#### HTML代码部分。

chenchuang0128的博客 1417

html调用app store,iOS 获取appStore的链接地址,从app中跳转 appStore中应用

从app中跳转到appStore中,分为1.取得app在appStore中的链接地址mac打开iTunes,在右上角中的搜索框中输入你的应用名称。在弹出的菜单中,选择复制链接,得到该应用的链接地址:https://itunes.apple.com/cn/app/jie-zou-da-shi/id493901993?mt=8然后将 http:// 替换为 itms:// 或者 itms-apps:/...

weixin_39647787的博客 1046

ios html跳转appstore,iOS 短信链接 点击跳转app或appstore

e钱包name="viewport"content="width=device-width"/>href="itms-apps://itunes.apple.com/cn/app/e-qian-bao/id768124701?mt=8" id="openApp">正在打开e钱包...type="text/javascript">function browser() {var u ...

weixin_39818521的博客 688

ios微信浏览器App下载链接怎样跳转到苹果App Store

通过微信分享链接下载App的情况很常见(写得简单一点) Android    选择跳转至腾讯应用宝,这个做起来很容易,只要我们把应用上传至腾讯应用宝变可以通过链接轻松下载,例如: return "redirect:http://a.app.qq.com/o/simple.jsp?pkgname=***"; Ios    只能跳转至App Store,通常情况下可以这样跳转至苹果App S

HandMer的专栏 1万+
上一篇: 教你深刻理解Runtime机制
下一篇: iOS横向滚动的scrollView和系统pop手势返回冲突的解决办法
Bytesking
博客等级 码龄10年 15粉丝 39原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值