iOS开发 - 网页拉起app后并执行某些操作

简介: iOS开发 - 网页拉起app后并执行某些操作

今天我们的应用里加入了网页拉起app的功能,具体的用处是,在wap中的详情界面查看视频,如果需要到手机 app中观看的话就点击一个按钮打开app,并将界面定在该视频的详情页里。


下面我来说下怎么用WAP拉起app,首先我们需要做的就是定一个协议,在app中的URL Schemes中添加一个标记:

image.png

如上图所示,identifier随便填,当然,最好填标志性的东西,比如bundleid之类的,URL Schemes就是一个关键的标志了,需要用到它来拉起app,现在就按“xxxxx”为例,设置好这些应用内的设置就完毕了,接着就需要wap来操作了,不过我们本地也是可以来测试的,在模拟器运行完成后,打开Safari浏览器,在搜索框中键入“xxxxx://”之后回车就可以拉起应用,那么拉起后怎么来进行传值呢?比如说我跳转到视频详情页,肯定要传视频的ID,这么来传“xxxxx://要传的信息”,把要传的信息放在后面就可以了,传好之后就是接收了,在Appdelegate中写一个方法:

- (BOOL)application:(UIApplication *)application
      handleOpenURL:(NSURL *)url
{   
    return YES;
}
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    return YES;
}

在以上两个方法中来获取到拉起app后传入的url,但是博主在使用的时候,发现

- (BOOL)application:(UIApplication *)application
      handleOpenURL:(NSURL *)url

这个方法收不到传入的参数,经测试,

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

可以收到消息,这里先说使用,具体为什么上面那个方法收不到传递的信息大家私下可以查一下,那么在这里来对参数进行处理:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    NSString *urlStr=[url absoluteString];
    return YES;

拿到了传入的参数,你以为这样就完了么?不,并没有,这里在使用中会发生问题,我们拿到了之后,就比如说博主,怎么来跳转到详情页呢?视频的ID博主拿到了,怎么来用呢?博主这里是这么写的,先把url存入本地,然后在进入首页刷新出界面后查找url是否为空,当不为空时把视频ID传入跳转的详情页,获取到拉起app前视频的信息并播放,你以为这就完了么?依然没有,这是在app没有打开的情况下主页会刷新,然而当app在后外的时候,拉起app主页已经存在,下载数据没有进行,所以不会触发跳转详情这一步(为了杜绝像博主这样把是否传入信息这个判断依据写在下载首页信息结束后刷新界面的地方,所以说明下),这时博主不得不该用通知的方式来执行,你以为这就是结束么?并没有,加入通知后,会发现,在app完全退出的情况,通知的时候首页还没出现,通知未注册,所以还是不能触发这个操作,也许你已经发现了,既执行通知又在首页下载结束后那里进行判断来执行操作,这样,当app不在后台时就在首页数据加载完毕后根据传入url是否存在来执行操作,当app在后台时就通过通知来执行,完美:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    NSString *urlStr=[url absoluteString];
    [[NSUserDefaults standardUserDefaults]setValue:urlStr forKey:@"webToApp"];
    [[NSUserDefaults standardUserDefaults]synchronize];
    [[NSNotificationCenter defaultCenter]postNotificationName:@"webToApp" object:nil];
    return YES;

一定要记得在首页数据加载完毕后判断来执行操作哦,整个步骤就是这样。


最近使用过一次,发生了异常,原因是捕获外部URL的方法变成了下面这个:

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

注意下替换哦。

目录
相关文章
|
6天前
|
安全 数据安全/隐私保护 Android开发
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
127 75
|
1天前
|
Dart 前端开发 架构师
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
|
17天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
131 18
|
17天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
13天前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
37 5
|
13天前
|
移动开发 安全 搜索推荐
圈子社交系统APP,同城本地圈子论坛开发,让身边的人沟通更加紧密
圈子社交系统APP是一款基于社交网络的移动应用,用户可创建、加入和管理兴趣圈子。主要功能包括:动态分享与交流、实时聊天、会员体系与身份认证、活动策划等。该APP注重个性化定制、社交关系深化、隐私安全及跨平台互联,提供丰富的社交体验。
|
16天前
鸿蒙语言开发 几十套鸿蒙ArkTs app毕业设计及课程作业
鸿蒙语言开发 几十套鸿蒙ArkTs app毕业设计及课程作业
22 1
|
25天前
|
JSON 缓存 前端开发
HarmonyOS NEXT 5.0鸿蒙开发一套影院APP(附带源码)
本项目基于HarmonyOS NEXT 5.0开发了一款影院应用程序,主要实现了电影和影院信息的展示功能。应用包括首页、电影列表、影院列表等模块。首页包含轮播图与正在热映及即将上映的电影切换显示;电影列表模块通过API获取电影数据并以网格形式展示,用户可以查看电影详情;影院列表则允许用户选择城市后查看对应影院信息,并支持城市选择弹窗。此外,项目中还集成了Axios用于网络请求,并进行了二次封装以简化接口调用流程,同时添加了请求和响应拦截器来处理通用逻辑。整体代码结构清晰,使用了组件化开发方式,便于维护和扩展。 该简介概括了提供的内容,但请注意实际开发中还需考虑UI优化、性能提升等方面的工作。
87 11
|
22天前
|
前端开发 数据库 UED
uniapp开发,前后端分离的陪玩系统优势,陪玩app功能特点,线上聊天线下陪玩,只要4800
前后端分离的陪玩系统将前端(用户界面)和后端(服务器逻辑)分开开发,前者负责页面渲染与用户交互,后者处理数据并提供接口。该架构提高开发效率、优化用户体验、增强可扩展性和稳定性,降低维护成本,提升安全性。玩家可发布陪玩需求,陪玩人员发布服务信息,支持在线聊天、预约及线下陪玩功能,满足多样化需求。[演示链接](https://www.51duoke.cn/games/?id=7)
|
21天前
|
安全 算法 机器人
双重防护!红娘相亲app搭建开发,婚恋交友系统登录方式,密码+验证码的优势
在婚恋交友系统中,密码和验证码是两种重要的安全措施。密码用于验证用户身份,应设置为复杂组合以防止未经授权的访问;验证码则通过图形或字符识别,防止自动化攻击如暴力破解和注册机器人。两者同时开启可显著提高安全性,防止暴力破解和自动化注册,提升用户信任感。建议要求强密码、定期更新验证码样式,并在可疑登录时增加验证码复杂性。这样既能保障用户信息安全,又兼顾了用户体验。 ![交友11111.jpg](https://ucc.alicdn.com/pic/developer-ecology/hy2p6wcvgk4oe_c9eb8d6eb8144866b0cd1d96ffb0c907.jpg)

热门文章

最新文章