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

注意下替换哦。

目录
相关文章
|
10月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1610 139
|
10月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
724 137
|
10月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
424 154
|
10月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1796 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
10月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1148 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
10月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1221 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
10月前
|
人工智能 前端开发 JavaScript
最佳实践3:用通义灵码开发一款 App
本示例演示使用通义灵码,基于React Native与Node.js开发跨平台类通义App,重点展示iOS端实现。涵盖前端页面生成、后端代码库自动生成、RTK Query通信集成及Qwen API调用全过程,体现灵码在全栈开发中的高效能力。(238字)
1023 11
|
10月前
|
人工智能 小程序 开发者
【一步步开发AI运动APP】十二、自定义扩展新运动项目03
继【一步步开发AI运动小程序】后,我们推出新系列【一步步开发AI运动APP】,助开发者打造高性能、优体验的AI运动应用。本文详解自定义扩展运动分析器的统一管理实现,提升代码复用性与可维护性,涵盖APP与小程序插件差异及完整代码示例,助力AI运动场景深度拓展。
|
10月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
466 0

热门文章

最新文章