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链接后面的参数,之后进行指定页面的跳转就可以了。

博客系统 - 系统简介与首页设计 用Bootstrap实现手机端的博客导航栏效果。 阅读详情

相关推荐

利用GeoTools高效切割GeoTIFF为WebP瓦片:从配置到实战

本文详细介绍了如何利用GeoTools将GeoTIFF高效切割为WebP瓦片,从环境配置到实战技巧全面覆盖。通过对比WebP与PNG格式的优势,展示其在体积压缩和传输效率上的显著提升,并提供多线程切割、内存管理等性能优化方案,帮助开发者快速实现地理空间数据的Web地图服务部署。

agile9scrum的博客 815

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

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

apkkkk的博客 3457

为什么你的Nginx配置SM2国密SSL证书失败?这些坑我都帮你踩过了

本文针对Nginx配置SM2国密SSL证书的常见失败原因,提供了详细的排查与解决方案。核心在于使用支持国密算法的Nginx版本(如集成Tongsuo库),正确处理从阿里云等平台获取的证书格式,并正确配置ssl_ciphers等关键参数。文章还解释了浏览器兼容性差异及双证书部署等进阶场景,帮助运维和开发人员高效完成国密合规改造。

weixin_29228203的博客 387

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

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

LeeDuoZuiShuai的博客 5839

Elasticsearch连接中断:深入解析Connection reset by peer问题及优化策略

本文深入解析Elasticsearch连接中断问题,特别是Connection reset by peer错误的成因与解决方案。从TCP层的心跳机制到客户端与服务端的配置差异,详细介绍了网络不稳定、防火墙拦截等常见原因,并提供了六种优化策略,包括KeepAlive调整、TCP参数调优和智能重试机制等,帮助提升Elasticsearch连接的稳定性。

weixin_42546392的博客 411

STM32CubeIDE之SHT3X温湿度传感器移植HAL库

有了前面的OLED的学习,这个学习起来也很快。 分以下几步走 1.你要有个温度传感器,SHT3X这个型号的,因为我要讲这个 2.你要有个STM32开发板(我用的是STM32L431RCT) 3.顺便找台电脑下载一个STM32CubeIDE 4.简单的找一个SHT3X的驱动,我是去某宝嫖的,一般卖这个的都有,这个驱动分两个文件,是.c和.h的,我直接把这两个放在下边 读了我上一篇的人,看这个应该很熟悉吧,一样的套路,学习方法是一样的,你就照搬就行 下面是sht3x.c的原文档,里面有个CRC..

qq_47736089的博客 2316

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

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

liliy__的博客 5668

STM32版CCD线性摄像头寻线寻迹小车_stm32接ccd

目前大多数的小车寻线寻迹都是用红外对管寻线,这是比较简单也比较成熟的技术方案,且成本也低。本文将介绍使用CCD线性摄像头寻线寻迹。TSL1401 线性传感器由一个 1x128 的光电二极管阵列、相关的电荷放大电路以及一个内部像素数据保功能组成。内部像素数据保功能可以为所有像素点提供同时积分的开始和停止时间。该阵列由 128 个像素组成,每个像素的感光面积为 3,524.3 平方微米。像素之间的间隔为 8μm。内部控制逻辑简化了操作,该模块需要串行输入(SI)信号和时钟信号(CLK)。

2401_87557129的博客 3229

短链或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

Geneformer实战:如何用Hugging Face Transformers快速搭建单细胞转录组分类模型

本文详细介绍了如何使用Geneformer和Hugging Face Transformers快速搭建单细胞转录组分类模型。通过环境准备、数据预处理、模型加载与配置、训练Pipeline构建等步骤,帮助读者掌握基于Transformer架构的单细胞数据分析技术,提升分类准确率和效率。

rl6adventurer的博客 605

芯片设计|SoC芯片设计流程 与 软硬件协同设计

SoC通常被称作系统级芯片或者片上系统,作为一个完整的系统,**其包含了硬件和软件两部分内容**。这里所说的硬件指SoC芯片部分,**软件是指运行在SoC芯片上的系统及应用程序**。既然它是由软件和硬件组合而成,则在进行系统设计时,**就必须同时从软件和硬件的角度去考虑。**

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1825

微信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

扣子Coze智能体万字教程:从入门到精通,一文掌握AI工作流搭建

智能体 = 角色设定 + 提示词 + 变量输入一个好提示词的核心是结构、风格和复用性创建后可以一键发布成网页应用、对话助手整个过程0代码,只靠配置,人人可学,人人可用四、进阶一:理解「工作流」的威力如果你已经用扣子创建了几个简单的智能体,比如写个爆款小红书文案、生成一段短视频脚本,那恭喜你已经入门。但如果你还停留在“一个智能体 = 一段提示词”的层级,你离真正的智能体生产力革命,还差一步:学会搭建“工作流”——让多个大模型自动协同完成任务。

互联网架构师笔记 3508

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

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

weixin_33772442的博客 1682

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

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

大飞哥的专栏 3万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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、付费专栏及课程。

余额充值