- (BOOL)application:(UIApplication *)application
          openURL:(NSURL *)url
          sourceApplication:(NSString *)sourceApplication
          annotation:(id)annotation {}应用被其他程序打开,并回调上面的函数时, 想将当前的应用切换至主屏幕, 怎么实现? 谢谢高手指点

解决方案 »

  1.   


    - (BOOL)application:(UIApplication *)application
                openURL:(NSURL *)url
      sourceApplication:(NSString *)sourceApplication
             annotation:(id)annotation
    {
        if ([sourceApplication isEqualToString:@"com.yourapp.AppName"])  //com.yourapp.AppName为调用者应用的bundle id
        {
            self.window.rootViewController = self.viewController;
            [self.window makeKeyAndVisible];
    /*这两句和这个里面一样
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        // Override point for customization after application launch.
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
            self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
        } else {
            self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
        }
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
        return YES;
    }
    */
        }
        
        return YES;
    }
      

  2.   

    多谢楼上的回答,如果上述的url是个媒体文件 的路径,我如果根据这个路径生成ALAsset? 或者如何获取这个媒体文件的信息
      

  3.   

        ALAssetsLibrary* alLibrary = [[ALAssetsLibrary alloc] init];
        NSURL *urlstr = [NSURL URLWithString:@"http://......"];
        [alLibrary assetForURL:urlstr resultBlock:^(ALAsset *asset) {
            
        } failureBlock:^(NSError *error) {
            
        }];
      

  4.   


    asset的值为nil, 传过来的url 为 @“file:///private/var/mobile/.../Documents/inbox/...jpg”