在IOS應用中開啟另外乙個應用的解決方案

2021-06-10 06:57:59 字數 1817 閱讀 7766

註冊自定義url協議

首先被啟動的應用需要向iphone註冊乙個自定義url協議。這是在你的專案資料夾的info.plist檔案進行的(就是你改變應用程式圖示的同乙個檔案)。

step1. 右鍵,選擇「add row」step2. key值選擇「url types」

step3. 開啟「item 0″,然後為該key增加乙個url identifier。可以是任何值,但建議用「反網域名稱」(例如 「com.fcplayer.testhello」)。

step4. 在「item 0」下再加一行。

step5. 選擇「url schemes」 作為key。

step6. 輸入你的url協議名 (例如「testhello://」 應寫做「testhello」)。如果有必要,你可以在這裡加入多個協議。

操作截圖如下:

訪問自定義url

在主應用程式中通過訪問自定義url啟動另外乙個應用:

nslog(@"canopenurl");

}自定義處理url

有些時候我們除了啟動還需向另外乙個應用傳送引數,這是也可以通過自定義的url來實現,如:

testhello://

testhello:

testhello://config=1&abar=2

通常,我們會從引數中解析出url以便在檢視中顯示或者儲存到userpreference。下面的例子把url儲存為user preference的url變數中或者列印出來:

nsstring *urlstring = [url absolutestring];

nslog(@"%@",urlstring);

//[[nsuserdefaults standarduserdefaults] setobject:urlstring forkey:@"url"];

//[[nsuserdefaults standarduserdefaults] synchronize];

return yes;}

其他

基本上至此我們就已經實現乙個應用程式中啟動另外乙個應用的功能,但是為了是我們的**更加強壯,我在網上又找了一段訪問**,如下:

// 有沒有準確配置info的cfbundleurlschemes欄位

// 是不是可以正確開啟

uialertview *alertview = [[uialertview alloc]

initwithtitle:@"setup error"

delegate:self

cancelbuttontitle:@"ok"

otherbuttontitles:nil,

nil];

[alertview show];

[alertview release];

} else }}

}// check if the authorization callback will work

if (!bschemeinplist || !bcanopenurl)

}另外還有一段啟動其他應用的**:

-(ibaction)openmaps 

-(ibaction)openemail

-(ibaction)openphone

-(ibaction)opensms

-(ibaction)openbrowser

在IOS應用中開啟另外乙個應用

註冊自定義url協議 首先被啟動的應用需要向iphone註冊乙個自定義url協議。這是在你的專案資料夾的info.plist檔案進行的 就是你改變應用程式圖示的同乙個檔案 step1.右鍵,選擇 add row step2.key值選擇 url types step3.開啟 item 0 然後為該k...

在IOS應用中開啟另外乙個應用的解決方案

註冊自定義url協議 首先被啟動的應用需要向iphone註冊乙個自定義url協議。這是在你的專案資料夾的info.plist檔案進行的 就是你改變應用程式圖示的同乙個檔案 step1.右鍵,選擇 add row step2.key值選擇 url types step3.開啟 item 0 然後為該k...

在IOS應用中開啟另外乙個應用的解決方案

註冊自定義url協議 首先被啟動的應用需要向iphone註冊乙個自定義url協議。這是在你的專案資料夾的info.plist檔案進行的 就是你改變應用程式圖示的同乙個檔案 step1.右鍵,選擇 add row step2.key值選擇 url types step3.開啟 item 0 然後為該k...