我尽力解决这个问题,但绝对没有运气。
我有这个段落用来正常工作。但需要解决弃用方法。
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"%@",url.scheme);
NSString *path = [[NSBundle mainBundle] pathForResource: @"Info" ofType: @"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path];
NSString *str = [NSString stringWithFormat:@"fb%@",[dict objectForKey: @"FacebookAppID"]] ;
BOOL result = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
if (result) {
return YES;
}
return [self.instagram handleOpenURL:url];
}
我看到现在已弃用。
iOS(4.2及更高版本)不推荐使用:使用应用程序:openURL:options:相反。产生以下内容。但这并没有被称为。我错过了什么?
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
NSLog(@"%@",url.scheme);
NSString *path = [[NSBundle mainBundle] pathForResource: @"Info" ofType: @"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path];
NSString *str = [NSString stringWithFormat:@"fb%@",[dict objectForKey: @"FacebookAppID"]] ;
BOOL result = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
if (result) {
return YES;
}
return [self.instagram handleOpenURL:url];
}
提前感谢您的审核,非常感谢任何帮助。
答案 0 :(得分:3)
从iOS9开始,不推荐使用方法“应用程序:openURL:sourceApplication:annotation:”。所以基本上就像@ user2559325建议的那样,这个回调在iOS9以下的设备中不起作用。请参考以下SDK界面。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
NS_DEPRECATED_IOS(4_2,9_0,“请使用应用程序:openURL:options:”)
答案 1 :(得分:2)
您使用的方法可从iOS 9.0开始提供。它不会在iOS 9.0以下的设备中调用。
此外,它适用于iOS 9+设备。您必须将 LSApplicationQueriesSchemes 键添加到Info plist
LSApplicationQueriesSchemes(Array - iOS)指定URL方案 你希望应用程序能够使用canOpenURL:方法 UIApplication类。对于您希望应用使用的每种网址方案 canOpenURL:方法,将其添加为此数组中的字符串。阅读 canOpenURL:关于重要信息的方法描述 声明支持的方案并使用该方法。
了解注册URL方案的相反操作 应用程序可以处理,阅读CFBundleURLTypes键的说明。
iOS 9.0及更高版本支持此密钥。
答案 2 :(得分:1)
看看这个post。它是快速的,但基本上是相同的实现。
在objective-c中它会是这样的
Item1 <newline>
Description <newline>
LocalFilePathToPicture1<newline>
Item2 <newline>
Description <newline>
LocalFilePathToPicture2<newline>
...
答案 3 :(得分:0)
以下是Swift 3中的简单解决方案。
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
}