iOS:URL Scheme(17-12-19更)

来源:http://www.cnblogs.com/leonlincq/archive/2017/12/19/8067013.html
-Advertisement-
Play Games

1、APP跳轉 2、APP功能跳轉 3、系統功能調用 1、APP跳轉 1、設置App的URL Types(別的APP打開你的APP的地址)(項目 - TARGETS - APP icon - info - (拉到最下)URL Types ) URL Schemes:填上,你要給其他應用調用的URL地 ...


1、APP跳轉

2、APP功能跳轉

3、系統功能調用

 

1、APP跳轉

  1、被打開方

    設置APP的URL Types(設置位置在 “項目 - TARGETS - APP icon - info - (拉到最下)URL Types ”)。

      URL Schemes:填上,你要給其他應用調用的URL地址(自定義)。並讓其他調用者知道。

               如果是第三方分享,需要向 第三方開發者平臺 申請(讓其定義)。

               所以,一個APP有多個URL Schemes,可能會和別的APP重名情況。

 

  2、打開方

    比如打開微信:

      1)、設置微信白名單

        info.plist

          LSApplicationQueriesSchemes :

            item : weixin

 

      2)、打開APP

    // 判斷是否能打開(有安裝)
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"]]) {
        // 再打開
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"weixin://"] options:@{} completionHandler:nil];
    }else{
        // 提示:請先安裝 xx 客戶端。
    }

    

      同理,如果,在“1、”設置了URL Schemes,別人要打開你的APP,1)需要知道你APP的URL Schemes;2)對方設置了白名單。

 

2、APP功能跳轉

  比如,打開微信掃描二維碼功能(17-12-20測試,還可用):

    // 判斷是否能打開(有安裝)
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"]]) {
        // 再打開
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"weixin://scanqrcode"] options:@{} completionHandler:nil];
    }else{
        // 提示:請先安裝 xx 客戶端。
    }

  

  被打開方:

    1、要在 AppDelegate.m 實現代理方法,並對 url 合法性、對方APP Bundle ID(可選),進行判斷。

// 已廢棄(適配),NS_DEPRECATED_IOS(4_2, 9_0)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    NSLog(@"Wait Open Url = %@",url);
    NSLog(@"Form APP Bundle ID = %@",sourceApplication);

    return YES;
}

// 新方法,NS_AVAILABLE_IOS(9_0);
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
    
}

 

    2、傳值:如類似分享到朋友圈,用支付寶APP登錄淘寶APP功能。

        可自定義 URL Schemes 傳值通信格式,如:cnblogs_leonlincq://login:username=leonlincq&password=leonlincq 。

 

    3、功能使用完,如需進行回調,同理,用“1、APP跳轉”。

      因為,被打開,只知道對方的Bundle ID,不知道對方的URL Schemes。

        1)、被打開方,可制定規則,如每次打開,可類似“2、傳值”把打開方的 URL Schemes 傳過來。

        2)、不過上面還是無法解決URL Schemes重名情況,所以這就是需要向微信申請開發者的原因。讓其給你設置不重名的 URL Schemes 。

 

    備註:

    1、曲線方法:如知道“微信朋友圈”URL Schemes,不用安裝SDK,不用向微信申請開發者。也可以直接打開調用。像上面打開“掃一掃”例子。

            不過,無法回調,用戶體驗差一點,且因為對方URL Schemes是私有的,隨時可能會更改。

  

      

3、系統功能調用

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Curl命令可以通過命令行的方式,執行Http請求。在Elasticsearch中有使用的場景,因此這裡研究下如何在windows下執行curl命令。 工具下載 在官網處下載工具包:http://curl.haxx.se/download.html 使用方式一:在curl.exe目錄中使用 解壓下載 ...
  • 引言 在上一篇中 "大數據學習系列之五 Hive整合HBase圖文詳解" : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合HBase,並且測試成功了。在之前的 "大數據學習系列之一 Hadoop環境搭建(單機)" : http:/ ...
  • 引言 SUN 2008 初 10 億美元收購 MySQL Oracle 2009 年 4 月 74 億美元收購 SUN Sun 與 Oracle 合併的未來 1,如果雲計算對企業來說變得越來越重要,那麼數據將是雲計算的核心。而講到數據,也就意味著資料庫。就如塔克商學院數字策略中心主任 M. Eric ...
  • ORA-01502: 索引或這類索引的分區處於不可用狀態原因: 出現這個問題,可能有人move過表,或者disable 過索引。1. alter table xxxxxx move tablespace xxxxxxx 命令後,索引就會失效。2. alter index index_name unu ...
  • 通過修改redis配置文件(redis.conf)修改驗證密碼。(重啟生效) 客戶端通過密碼登錄redis併進行操作 ...
  • 其中容易忽略的一點是manifest.json文件。plus下加入如下配置: 然後,替換splash下的啟動png圖片。 ...
  • 一,使用Newsstand Kit API 蘋果公司在iOS5之後提供了電子報刊雜誌開發API-Newsstand Kit.Newsstand Kit 只有3個類;NKLibrary,NKIssue和NKAssetDownload. NKAssetDownload類封裝了要下載的報刊雜誌資源類。這些 ...
  • >>adb devices常見錯誤: >>解決方案彙總 檢查埠是否占用:netstat -ano | findstr 5037 | findstr LISTENING 檢查占用應用:tasklist | findstr PID adb nodaemon server —— 可以列印詳細信息 若占用 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...