HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用URL启动应用程序,但未调用OpenUrl大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经实现了一个URL scheR_298_11845@e并使用它通过调用方法将数据传递给我的应用程序.整个代码如下所示
- (BOOL)application:(UIApplication *)application handLeopenURL:(NSURL *)url{
    // check the calling application Bundle ID
    if ([[url scheR_298_11845@e] isEqualToString:@"yuvitime"])
    {
        NSLog(@"URL scheR_298_11845@e:%@",[url scheR_298_11845@e]);
        NSString * yuvitimerequestValue = [url query];
        NSDictionary * userInfor = [[NSDictionary alloc]initWithObjectsAndKeys:yuvitimerequestValue,@"Yuvitimerequest",nil];
        NsnotificationCenter * notificationCentre = [NsnotificationCenter defaultCenter];
        [notificationCentre postNotificationName:@"URLscheR_298_11845@EACTIVATEDNOTIFICATION" object:self userInfo:userInfor];

        return YES;
    }
    else
        return NO;
}

如果我的应用程序在后台,一切都正常.当您点击URL时,该应用程序将返回到Foreground,该URL将按照上述功能进行编码处理.

但是,如果应用程序被终止(应用程序尚未启动),通过单击URL,它只启动应用程序而不调用上面显示的处理@L_674_8@.

搜索后,我得到的最好的结果是这个

应用:WillFinishLaunchingWithOptions:
当被要求打开一个URL时,该方法的返回结果与应用程序的返回结果相结合:didFinishLaunchingWithOptions:方法来确定是否应该处理URl.如果任一方法返回否,系统不调用应用程序:openURL:options:method.如果不实现其中一种方法,则只虑已实现方法的返回值.

– 应用程序:didFinishLaunchingWithOptions:
方法代表您最后一次处理launchOptions字典中任何键的机会.如果您没有评估应用程序中的键:willFinishLaunchingWithOptions:method,则应在此方法中查看它们并提供适当的响应.
不是应用程序委托的对象可以通过观察名为UIApplicationDidFinishLaunchingNotification的通知并访问通知的userInfo字典来访问相同的launchOptions字典值.该方法返回后不久就会发送该通知.
方法的返回结果与应用程序的返回结果相结合:willFinishLaunchingWithOptions:方法来确定是否应该处理URl.如果任一方法返回NO,则不处理该URl.如果不实现其中一种方法,则只虑已实现方法的返回值.

尽管有解释,我还是不知道该怎么做,我找不到任何具体的在线.

谢谢

问候

解决方法

我同意Kaloyan,“handLeopenURL”从来没有在应用程序启动时被调用.因此,您必须在didFinishLaunchingWithOptions中的“launchOptions”中检查URl.

然而

我采用与Apple example code相同的解决方案,用于quickactions(3D Touch).我在发布时保持URL的变量,我在applicationDidBecomeActive:处理它.

@interface MyAppDelegate ()
@property (nonatomic,strong) NSURL *launchedURL;
@end

@implementation MyAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.launchedURL = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
    ...
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if (self.launchedURL) {
        [self openLink:self.launchedURL];
        self.launchedURL = nil;
    }
}

- (BOOL)  application:(UIApplication *)application
          openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
       Annotation:(id)Annotation
{
    NSURL *openUrl = url;

    if (!openUrl)
    {
        return NO;
    }
    return [self openLink:openUrl];
}

- (BOOL)openLink:(NSURL *)urlLink
{
    ...
}

@end

大佬总结

以上是大佬教程为你收集整理的ios – 使用URL启动应用程序,但未调用OpenUrl全部内容,希望文章能够帮你解决ios – 使用URL启动应用程序,但未调用OpenUrl所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。