iOS判斷手機中是否安裝過某個app

最近項目中涉及到了 建行龍支付的問題 于是特意研究了下判斷手機是否安裝過某個app
主要有這個方法
步驟一: 獲取iOS設(shè)備上所有已經(jīng)安裝的app
導(dǎo)入運行時頭文件

include <objc/runtime.h>

添加如下方法
+(BOOL)checkInstalledApp:(NSString)app_id
{
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject
workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
NSArray *allApplications = [workspace performSelector:@selector(allApplications)];//這樣就能獲取到手機中安裝的所有App

  BOOL b=NO;
NSInteger zlConnt = 0;
for (NSString *appStr in allApplications) {

    NSString *app = [NSString stringWithFormat:@"%@",appStr];//轉(zhuǎn)換成字符串
    NSRange range = [app rangeOfString:app_id];
         //是否包含這個bundle ID
         if (range.length > 1) {
             zlConnt ++;
         }
         }
         if (zlConnt >= 1) {
             NSLog(@"已安裝");

             return YES;
             
         }
return b;

}

//調(diào)用的時候傳入對應(yīng)的bundle_id 就好了

   NSString* app_id=@"com.ccb.ccbDemo";//建設(shè)銀行的bundle_id也可以以其他的來實驗
   //FetchDataHelper 是一個自定義的類
    BOOL b= [FetchDataHelper  checkInstalledApp:app_id];
   if (b) {
       //已安裝
       DDLog(@"--安裝建行");

   }else
   {
       NSLog(@"--3333沒安裝建行");
      //建行支付

  }

運行結(jié)果是準確的,本人親自試驗過.
ps(補充下) 蘋果貌似禁用了 LSApplicationWorkspace defaultWorkspace 等方法 這個方法僅做參考 上線會被拒絕掉 ,本人多么痛的領(lǐng)悟.......
----------------------我是華麗的分割線------------更新----------------------------
補充一個打開其他app的方法
通過urlSchemes 打開其他app (前提是要知道該app 的 urlSchemes )

另外關(guān)于如何獲取bundle_id的方法也簡單說一下.

在iOS系統(tǒng)中,IPA文件指的是iphone Application,IPA文件實質(zhì)上是一個zip壓縮包,我們在iOS系統(tǒng)上使用的軟件,最初下載的都是IPA文件.
第一步:真機連接電腦,打開itunes

D058A4A3-5C46-461F-B79F-F8BD96DEDCFE.png

//搜索建設(shè)銀行

9C4A8C5B-A9BC-4C0E-A5FE-9944FD6907C8.png

//下載建設(shè)銀行

0F4E88D1-5836-4A39-90C4-26F4FB663549.png

//下載完成后切換到資料庫

87146D2F-B915-4667-9E2B-039EA66FAD13.png

選中右鍵在finder 中顯示

CA33F39B-97C3-46A4-9AC0-5517AFAC015E.png

//把ipa 后綴改為zip


B06EB747-CEE8-471A-A1E3-01BBEA96EA09.png

//解壓文件并選中

031C586A-AA67-4224-A4B7-CD34EE7030B0.png

//右鍵顯示包內(nèi)容 并搜索 info.plist


431293C4-BCC4-4A08-AAFE-2E3FAF4D28AC.png

//會有三個info.plist 打開第三個 找到bundle_id

73305285-2717-4AE9-B8F2-25475DB221DC.png

//這樣我們就找到了中國建設(shè)銀行的bundle_id了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 靜態(tài)庫與動態(tài)庫的區(qū)別 首先來看什么是庫,庫(Library)說白了就是一段編譯好的二進制代碼,加上頭文件就可以供別...
    吃瓜群眾呀閱讀 12,313評論 3 42
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,030評論 0 9
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,037評論 4 61
  • 前幾天開發(fā)一個視頻處理相關(guān)的App,發(fā)現(xiàn)一個莫名其妙的問題,代碼檢查了很長時間也沒發(fā)現(xiàn)問題所在,問題描述如下,需求...
    targe閱讀 1,139評論 1 0
  • 文/子諾不離 身處信息時代,“忙”和“沒時間”是大家的一個普遍感覺??墒?,你有沒有停下來想過,這樣的忙,是不是都有...
    子諾不離閱讀 7,509評論 22 233

友情鏈接更多精彩內(nèi)容