iOS 檢測本機(jī)是否安裝了某 App

前言

iOS中敏晤,檢測安裝了某種 App 的文章有很多私植。這里只介紹方法官边,和一些實(shí)際用的技巧艘蹋。

綜述

實(shí)際上有兩種東西可以用來檢測 APP 是否安裝:

  • bundle ID —— 包名锄贼,是每個(gè)應(yīng)用的唯一識(shí)別碼(換言之,這個(gè)值是一定會(huì)有的)
  • URL Scheme —— 供APP 之間跳轉(zhuǎn)(打開應(yīng)用)使用女阀,需要在下面的配置中去手動(dòng)添加(換言之宅荤,如果我沒有配置他,他也沒有默認(rèn)值浸策,實(shí)際上我是無法通過外部應(yīng)用打開的)

Bundle ID

  • 缺點(diǎn):方法一消耗一定的性能(手機(jī)安裝APP比較多的話)冯键,APP 審核必備拒
  • 優(yōu)點(diǎn):跳過了ios9.0canOpenURL這個(gè)API使用限制

一些安卓的應(yīng)用,通過動(dòng)態(tài)下發(fā)的方式庸汗,獲取到每個(gè)游戲的package ID惫确,檢測是否安裝。
在iOS中實(shí)際上是用到了OC Runtime中的方法去實(shí)現(xiàn)蚯舱。因?yàn)橐欢〞?huì)被拒改化,這里就不引用代碼了

URL Scheme

  • 必須要提前知道打開APP的列表,也就是白名單枉昏,并配置到工程的 info.plist中去陈肛。
  • 無法動(dòng)態(tài)更新列表(每次新增都需要去更改這個(gè)列表)

配置的方法:

  • source code 的方式打開工程的 info.plist, 找到(如果沒有就添加)LSApplicationQueriesSchemes ,加入對應(yīng)的 URL Scheme

    <key>LSApplicationQueriesSchemes</key>
      <array>
          <string>wechat</string>
          <string>weixin</string>
          <string>twitter</string>
      </array>
    
  • 假設(shè)我們要檢測微信是否已安裝兄裂,那么通過下面這段代碼(swift為例). 務(wù)必在 string的末尾加上://

    func detectInstalled(URLString: String?) -> URL? {
      if let URLString = URLString, let exsistURL = URL(string: URLString), UIApplication.shared.canOpenURL(exsistURL) {
          return exsistURL
      } else {
          return nil
      }
    }
    
    detectInstalled(URLString: "weixin://")
    

碰到的問題

有一種情況句旱,團(tuán)隊(duì)發(fā)布了 N 款 App,這時(shí)候我需要寫一個(gè)工具 APP 去檢測哪些發(fā)布的包是否安裝晰奖。鑒于上文提到的谈撒,URL Scheme并不是一個(gè)App 上架時(shí)候的必備項(xiàng),那怎么辦呢匾南,我們是不是就沒有可以參考的依據(jù)了港华?

如果是下面這種情況,應(yīng)該還有得救:

如果你之前發(fā)布的 App午衰,對接過需要提供 URL Scheme 的第三方平臺(tái)立宜,那么可以使用這個(gè)URL Scheme作為檢測或打開的依據(jù)。

舉個(gè)例子

說具體一些臊岸,假設(shè)我對結(jié)果微信或 Facebook橙数,在對接平臺(tái)的時(shí)候,這些 平臺(tái)一定會(huì)提供一個(gè)唯一識(shí)別本 AppID 用來作識(shí)別帅戒。
因?yàn)楫?dāng)你實(shí)現(xiàn)了:

MyApp --> 微信/Facebook --> 跳回 MyApp

這個(gè)步驟灯帮,他一定是需要知道你的 URL Scheme崖技,不然他怎么知道跳回到哪一個(gè) App 呢?

工程中的截圖

可以看到钟哥,圖中涂掉的部分迎献,就是第三方平臺(tái)提供并讓我們配置的 URL Scheme

經(jīng)過實(shí)測發(fā)現(xiàn),這些 URL Scheme確實(shí)可以用于打開/檢測是否可以打開 對應(yīng)的 App

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腻贰,一起剝皮案震驚了整個(gè)濱河市吁恍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌播演,老刑警劉巖冀瓦,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異写烤,居然都是意外死亡翼闽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門洲炊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來感局,“玉大人,你說我怎么就攤上這事暂衡±堆幔” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵古徒,是天一觀的道長汤锨。 經(jīng)常有香客問我痘绎,道長入问,這世上最難降的妖魔是什么向图? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任粉楚,我火速辦了婚禮形娇,結(jié)果婚禮上册倒,老公的妹妹穿的比我還像新娘乓搬。我一直安慰自己西雀,他們只是感情好萨驶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艇肴,像睡著了一般腔呜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上再悼,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天核畴,我揣著相機(jī)與錄音,去河邊找鬼冲九。 笑死谤草,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丑孩,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼冀宴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了温学?” 一聲冷哼從身側(cè)響起略贮,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枫浙,沒想到半個(gè)月后刨肃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箩帚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年真友,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片紧帕。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盔然,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出是嗜,到底是詐尸還是另有隱情愈案,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布鹅搪,位于F島的核電站站绪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏丽柿。R本人自食惡果不足惜恢准,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甫题。 院中可真熱鬧馁筐,春花似錦、人聲如沸坠非。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炎码。三九已至盟迟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間潦闲,已是汗流浹背队萤。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矫钓,地道東北人要尔。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓舍杜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赵辕。 傳聞我的和親對象是個(gè)殘疾皇子既绩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容