需求:我目前的SDK项目,需要分析外界打开SDK所在App用的scheme。
比如,AppA使用我的SDK,AppA能够被一个scheme(myscheme://mydata={name:Squall})唤起,我希望在代码中得到这个scheme并处理其附带的参数。
但是,我实现了AppDelegate中的application:openURL:options:方法后,发现这个方法并没有在预期的时候被调用。
最终搜到https://stackoverflow.com/questions/58624786/method-applicationopenurloptions-is-not-called,说是需要在SceneDelegate中实现相关代码才可以。
我实验了并确定这样可以成功,这是我的代码:
- (void)scene:(UIScene*)sceneopenURLContexts:(NSSet *)URLContexts {
if([URLContextscount] >0) {
UIOpenURLContext*urlContext = URLContexts.allObjects.firstObject;
[selfhandleOpenURLContext:urlContext];
}
}
// 处理打开的 URL
- (void)handleOpenURLContext:(UIOpenURLContext*)urlContext {
NSURL*url = urlContext.URL;
NSLog(@"handleOpenURLContext %@",url);
}
简书传代码真的不好用,可以看我csdn上的同名文章
网友评论