iOS 開啟第三方應用

來源:互聯網
上載者:User

現在有應用A和應用B兩個應用,其中應用B希望可以開啟應用A,傳遞一定的參數給A,實現互動。

第一步:應用A在info中的URL Types 建立一項,填寫對應的identifier和schemes,其中identifier對應應用的Bundle Identifier,schemes是其他應用開啟本應用的網域名稱。如下圖所示:

第二步:在應用B的info中添加LSApplicationQueriesSchemes,在array中填寫應用A的schemes,如下圖所示:

第三步:在應用B中添加開啟應用A的代碼

  if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"platformA://"]]) {        NSLog(@"install--");        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"platformA://?token=123abct"]];    }else{        NSLog(@"no---");    }

第四步:在應用A的appDelegate中添加監控本應用被調用的delegate方法。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{    NSLog(@"Calling Application Bundle ID: %@", sourceApplication);    NSLog(@"URL scheme:%@", [url scheme]);    NSLog(@"URL query: %@", [url query]);    return YES;}- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options{    NSLog(@"url: %@", url);    NSLog(@"options :%@", options);    return YES;}

其中由於方法1在iOS9以上被廢除,所以需要對實際版本最好適配。

完成以上四步,即可實現應用B開啟應用A、並傳遞參數的功能:


應用A接收到參數後,通過對參數的分析即可實現需要的功能。

以上內容為iOS9.0後,APP之間資料傳遞的用法,但由於URL Schemes的變動,所以必須在主動調用一方APP中維護LSApplicationQueriesSchemes白名單。
iOS9.0後URL schemes變動

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.