我在实现 - (BOOL)应用程序时遇到问题:openURL并使用UIDocumentInteractionController将PDF文件从应用程序导出到另一个应用程序。
(1)目标应用程序只执行导入的PDF文件的URL(在标签中)。
这是AppDelegate.m中的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithText:@"No file is imported."];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication: (NSString *)sourceApplication annotation:(id)annotation
{
if (url != nil)
{
[self.viewController handleOpenURL:url];
return YES;
}
else
{
[self.viewController handleOpenURL:[NSURL fileURLWithPath:@"AppDelegate.h"]];
return NO;
}
}
方法“handleOpenURL”只需获取url并在视图控制器中放入标签并显示警告:
- (void)handleOpenURL:(NSURL *)fileURL
{
_text = [fileURL absoluteString];
self.lblText.text = _text;
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:_text delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil];
[alert show];
}
(2)在源应用程序中,我只是使用UIDocumentInteractionController列出“Open In”选项(我的目标应用程序在列表中显示得很好)
以下是代码:
_docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:attachmentFile]];
_docInteractionController.delegate = self;
_docInteractionController.UTI = [_extensionUTIs objectForKey:[[attachmentFile pathExtension] lowercaseString]];
BOOL opened = [_docInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:NO];
(3)问题: - 当我选择目标应用程序(从“打开方式”列表)时,模拟器从源应用程序切换到目标应用程序没问题,但看起来像应用程序:openURL方法未被调用,因为标签保持为初始状态(没有导入文件。)和没有警报视图显示。
请告诉我这里有什么问题?
提前致谢。
答案 0 :(得分:0)
我使用这两种方法进行facebook集成来处理openURL ......它的工作正常。
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [ [[HIFacebookConnect sharedGameObject] facebook] handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[[HIFacebookConnect sharedGameObject] facebook] handleOpenURL:url];
}
答案 1 :(得分:-1)
只是想将我的问题标记为已回答,因为我已经找到了故障。
更新:启动UIDocumentInteractionController对象时不包含完整文件路径是我的错。