Вы должны добавить флаг override
, указывающий, хотите ли вы осуществлять контроль или нет.
@interface MyApplication : UIApplication {
}
-(BOOL)openURL:(NSURL *)url withOverride:(BOOL)override;
@end
@implementation MyApplication
-(BOOL)openURL:(NSURL *)url withOverride:(BOOL)override {
if ( !override ) {
return [super openURL:url];
}
if ([self.delegate openURL:url]) {
return YES;
} else {
return [super openURL:url];
}
}
-(BOOL)openURL:(NSURL *)url{
return [self openURL:url withOverride:YES];
}
@end
Так что теперь все вызовы, которые вы хотите обойти, могут отправляться следующим образом.
[[MyApplication sharedApplication] openURL:url withOverride:NO];
Оригинальный ответ
Это то, что вы должны сделать. Поместите его перед оператором return YES;
.
if ( [super canOpenURL:aURL] ) {
return [super openURL:aURL];
}