在做移動應用單點登錄的時候,需要在浏覽器裡點擊鏈接啟動APP並將參數傳到APP裡的相應接口進行處理,現將通過浏覽器調用Android和iOS應用的實現過程整理出來固化到博客,以便查詢。
一:通過浏覽器調用Android應用
1)修改配置文件AndroidManifest.xml,在需要打開的activity下添加如下配置:
2)在HTML中,添加ssotest,即可點擊此鏈接打開APP。
3)其他的APP也可以通過如下方式打開該應用:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ssotest://")));
4)如果想傳遞參數,可以在url追加即可,比如:
ssotest
5)接受並解析參數,在接收的Activity中使用如下代碼獲得參數:
this.getIntent().getScheme();//獲得Scheme名稱
this.getIntent().getDataString();//獲得Uri全部路徑,根據格式自己解析字符串即可。
二:通過浏覽器調用iOS應用
1)修改plist文件,注冊對外的URL
A:找到工程的info.plist
B: 點擊 information property list後面的加號,從列表中選擇URL types
C: 展開URL types,再展開Item0,將Item0下的URL identifier修改為URL Scheme
D: 展開URL Scheme,將Item0的內容修改為ssotest(可自行定義)2)在HTML中,添加ssotest,即可點擊此鏈接打開APP。
3)如果想在啟動的APP中接受此URL並進行特殊的處理,可以修改工程的AppDelegate.m,重寫openURL方法,如下:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// 可通過[url scheme]獲得定義的Scheme名稱
// 可通過[url absoluteString] 獲得整個的URL路徑,可解析傳遞過來的數據
}