IOS跳轉到其他app

先說明需求:如果手機安裝了app,就打開該app,否則跳轉到Safari上。

X度到的很多資料基本上都是這樣:

1.配置白名單

image

2.代碼


NSURL  *url = [NSURL URLWithString:@"weixin://"];

//mqq為要跳轉的app的url

BOOL open = [[UIApplication sharedApplication] canOpenURL:url];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
      if (IOS10_OR_LATER) {

                [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {

                    NSLog(@"success = %d",success);

                }];

            }else{

                [[UIApplication sharedApplication] openURL:url];

            }

        }

        else {

            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.baidu.com/"]];

        }

代碼是對的,但是如果你在工程面板處,通過Info這邊的URL Type進行配置了(上面那張圖),那么不管手機上有沒有安裝微信,canOpenUrl返回的值都是YES。只有這邊不配置,canOpenUrl才能返回正確的值。這樣才能實現手機安裝了app,就打開該app,否則跳轉到Safari上。當然白名單還是要配置的,在Info.plist中配置。在LSApplicationQueriesSchemes中添加一欄,string的值,為你要跳轉的app的url scheme的值就可以(記得不要加上://)

image.png

我這次自己項目中用到的url scheme
google Home : chromecast
Amazon Alexa : Alexa
IFTTT : IFTTT
順便一些常見的url:https://www.zhihu.com/question/19907735
以及:http://www.lxweimin.com/p/382d3697beac 這里面鏈接的那篇文章覺得幫助蠻大的

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容