美文网首页
通过 Bundle ID跳到第三方app

通过 Bundle ID跳到第三方app

作者: 神一样的队友 | 来源:发表于2018-06-05 14:58 被阅读0次

    我原本以为这个是不太可能的,之前用的也都是通过 URL Schemes来跳转 ,人家的 Bundle ID也不会给你,可是最近有个项目就是这样的需求,找了很长时间,都是这三句话

        ClassLSApplicationWorkspace_class =objc_getClass("LSApplicationWorkspace");

        NSObject* workspace = [LSApplicationWorkspace_classperformSelector:@selector(defaultWorkspace)];

        BOOLisopen = [workspaceperformSelector:@selector(openApplicationWithBundleID:)withObject:@"第三方app的Bundle ID"];

    后面没有了,琢磨了半天,将下面的代码补齐(我是将提示框封装了一下)

     if(isopen ==YES) {

            NSLog(@"打开了");

        }else{

            NSLog(@"没有app");

            [selfaddActionTotitle:@"提示"withMessage:@"您的手机上没有安装 x x x APP,是否前往下载?"withActionTitle:@"确定"withActionTitle2:@"取消"viewController:selfblock:^(BOOLisdelea) {

                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/us/app/id第三方APP的id?mt=8"]];

            }];

        }

    #pragma mark 提示框

    -(void)addActionTotitle:(NSString*)title withMessage:(NSString*)massage withActionTitle:(NSString*)actionTitle withActionTitle2:(NSString*)actionTitle2 viewController:(UIViewController*)vc block:(void(^)(BOOLisdelea))isok{

        UIAlertController *alertController=[UIAlertController alertControllerWithTitle:title message:massage        preferredStyle:( UIAlertControllerStyleAlert)];

        UIAlertAction *action=[UIAlertAction actionWithTitle:actionTitle style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) {

            isok(YES);

        }];

        UIAlertAction *action2=[UIAlertAction actionWithTitle:actionTitle2 style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) {

        }];

        [alertControlleraddAction:action];

        [alertControlleraddAction:action2];

        [vcpresentViewController:alertController animated:YES completion:nil];

    }

    相关文章

      网友评论

          本文标题:通过 Bundle ID跳到第三方app

          本文链接:https://www.haomeiwen.com/subject/ypnpsftx.html