在做行動裝置 App單點登入的時候,需要在瀏覽器裡點選連結啟動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追加即可,比如:
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路徑,可解析傳遞過來的資料 } |