1. 程式人生 > >iOS 如何判斷ios裝置中是否安裝了某款應用並用URL Scheme跳轉

iOS 如何判斷ios裝置中是否安裝了某款應用並用URL Scheme跳轉

第1步:.想要檢測是否安裝的話,首先需要知道這款應用的URL Schemes,方法如下

獲取一個 app 的 URL Scheme 的方法:

  1. 上這個網站  URL Schemes  查一下相應的 app 的 URL Scheme 是否有被收錄 
  2. 第一種方法沒找到的話,把相應的 app 的 ipa 安裝檔案下載下來,把檔案 .ipa 的字尾改成 .zip,然後解壓,開啟 Payload/xxx.app/Info.plist 這個檔案(具體方法:http://iphone.tgbus.com/tutorial/use/201505/20150511163706.shtml),找到 URL types 下的 URL Schemes 下的陣列對應的值就是這個 app 的 URL Scheme 了,以 Weico 為例:

通過第二種方法,查到 新浪微博官方客戶端 的 URL Scheme 為  sinaweibo://  , Weico 的 URL Scheme 則為  weico:// 或者  weico2://

簡單驗證一個 URL Scheme 是否正確的方法:

在真機裝置(此裝置要安裝了待驗證的 app)裡面開啟 Safari,然後在位址列中鍵入該應用的 URL Scheme,後加 ://,比如 Weico 的,在位址列中鍵入 weico:// ,然後點選確定,如果能正常調用出 Weico,即代表這個 URL Scheme 正確可用

上面說的方法只能獲取到簡單的 URL Scheme,至於介面呼叫,比如通過 URL Scheme 調用出發微博的介面,這個就要找具體 app 的開放平臺了,或者藉助於 google 搜尋了。

第2步:檢測是否暗轉和安裝之後進行跳轉,方法如下

-(void)gotoBanbleApp{

    // xxx 是要檢測的應用的 URL Scheme

NSURL *url = [NSURLURLWithString:@"xxx://"];

BOOL result = [[UIApplicationsharedApplication] canOpenURL:url];

if (result == YES) {

        [[UIApplicationsharedApplication] openURL:url];

    }else{

//提示使用者去下載

UIAlertView *alert=[[UIAlertViewalloc]initWithTitle:@"提示"message:@"GoBand未安裝,是否去安裝"delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"下載",nil];

        alert.tag=1003;

        [alert show];

    }

}

提示:可能會遇到的錯誤: -canOpenURL: failed for URL: "xxx//" - error: "This app is not allowed to query for scheme goBan

問題分析:這是檢測的應用遇到Scheme黑名單了,只需要加入白名單就好了,具體方法如下

解決方法:http://www.jianshu.com/p/631bd7f12a38


相關推薦

iOS 如何判斷ios裝置是否安裝應用並用URL Scheme

第1步:.想要檢測是否安裝的話,首先需要知道這款應用的URL Schemes,方法如下 獲取一個 app 的 URL Scheme 的方法: 上這個網站  URL Schemes  查一下相應的 app 的 URL Scheme 是否有被收錄 第一種方法沒找到的話,把相

IOS 判斷手機裝置上是否安裝應用

 判斷裝置是否安裝app,根據Bundle Identifier(下面程式碼中的appCode),如下方法: NSString *customURL = [NSString stringWithFormat:@"%@://",appCode]; if ([[UIApp

IOS 檢測使用者是否開啟定位 和 利用URL Scheme到系統設定Settings

開發中經常會碰到檢測 使用者是否開啟定位許可權  和 獲取圖片許可權 開啟系統通知 等 有時檢測到使用者系統級關閉,需要去設定裡去開啟。 通過URL Scheme的方式開啟內建的Settings,程式碼如下: 以下是內建的Settings的URL Scheme: Abou

iOS--判斷字串NSString數字、中文、大小寫英文

NSString *testString = @"中文123ljfLJF"; NSInteger alength = [testString length]; for (int i

js判斷手機是否安裝app,有則開啟,沒有去下載

function openApp(){ if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { var loadDateTime = new Date();

報錯:Win10 這臺計算機已經安裝 .NET Framework 4.5.2/4.6.1/4.7.1等等任何版本 或版本更高的更新

Win10系統自帶的.net framework版本為4.7,自己安裝.NET Framework 4.5.2時會提示:這臺計算機中已經安裝了 .NET Framework 4.5.2 或版本更高的更新。 解決方法 下載安裝.net framework的開發版或者說開發包。開發版地址h

在VM虛擬機器的centos7系統上安裝軟體,重啟後可以正常登陸,但登陸後卻是黑屏什麼都看不到

解決辦法: 正常輸入密碼登陸 使用 ctrl+alt+f2 進入centos7的無介面狀態,輸入使用者名稱,密碼登陸 初始化X xinit 啟動X,進入GNOME startx 然後消失的桌面就出現了。 完畢! 如果重新開機

為什麼明明安裝這個Android應用,卻找不到

作者:Yogi 前言:這裡講的是,通過adb push方式安裝應用的問題。有時候,我們明明把應用push到了裝置上,卻總也找不到這個應用,這篇文章教你怎麼應對。 你確定安裝成功了嗎? 首先要確定應用真的安裝成功了,因為我們是通過 adb pus

在Android手機內建高效能webkit核心瀏覽器

           這個事件就是開始載入頁面呼叫的,通常我們可以在這設定一個loading的頁面,告         訴使用者程式在等待網路響應。            在頁面載入結束時呼叫。同樣道理,我們知道一個頁面載入完成,於是我們可以關        閉loading 條,切換程式動作。   

iOS,利用URL Schemes到設定wifi、蜂窩行動網路頁面

一. 跳轉到“設定” //>=iOS8.0可用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];二. 跳轉到設定的

JS funtion()URL後臺action問題

child preview span -1 java lis var pin typelist JS funtion()中URL不跳轉後臺action問題 今天遇到一個百思不得其解的問題,到現在解決了,但是仍然不知道所以然(估計是因為域名不一致導致的),記錄一下 $.

Windows2008 安裝ssl證書之後IIS7 IIS8 http自動到https

IIS7、IIS8需要先確認是否安裝 “URL REWRITE2 ” 偽靜態模組 , 如果您已經安裝可以跳過 URL REWIRTE (偽靜態模組) 下載地址 : http://www.iis.net/downloads/microsoft/url-rewrite第一步: 選擇站點,&nbs

vim瀏覽c++程式碼使用ctags和cscope進行函式時vimrc的配置

依賴:ctags、cscope 方法: 在~/.vimrc中新增下面的程式碼。之後執行vimrc(source ~/.vimrc)。  以後瀏覽程式碼的時候按F9就可以在當前目錄生成相應的tags,之後按“ctrl和]” 即可在c++中找到函式的定義或者變數的定義:

點選iframe 頁面的一個按鈕實現到iframe外面的窗體裡面

Default.aspx protected void Page_Load(object sender, EventArgs e) { Response.Redirect("WebForm1.aspx"); }

div新增多張img圖片,點選img頁面檢視大圖

var imgList = $.trim(that.find("td").eq(10).text()).split(";"); var myDiv = document.getElementById(

微信小程式——wx.navigateTourl無法問題(app.json配置的tabBar與wx.navigateTourl引用相同頁面導致)(2017/12)

今天在做小程式的時候,在編寫 wx.navigateTo({ url:'../index/index' }) 進行頁面跳轉的時候發現是使用不成的。經過研究,發現錯誤的導致原因是因為在app.json中存在: "tabBar": { "list": [{ "pageP

AndroidScheme協議

Android中Activity之間的跳轉我們可以直接使用顯示或者隱式意圖跳轉都可以 但是實際開發過程中可能會碰到這類問題 比如App做活動,通過推送過來的訊息告訴客戶端跳轉到某某介面,客戶端本地自然不能寫死,不然就麻煩了 今天小結一下開發過程中碰到的

關於在jsp,標籤在confirm為false之後,還能繼續的問題.

首先貼上程式碼: <a href="Delete_Servlet?de_name=<%=book.getName()%>" onclick="confirm('確定刪除麼?')"> 這個是修改之前的程式碼,看起來好像沒問題,前面是超連結,後面為判斷

xcode的方法command+左鍵不能進行索引的解決方法

xcode command+左鍵不能跳轉的解決方法 工程中預設都有跳轉功能,就是在command+滑鼠可以實現函式 的跳轉,但是有時會出現Symbol not found,這是因為工程的索引

微信怎麽打開apk文件 微信打開外部瀏覽器打開apk文件

基於 跳轉 ios 良好的 需要 微信 提示 nbsp href 很多朋友的APP推廣鏈接需要在微信中進行的網頁宣傳、傳播、下載等等,但是各位朋友一定發現了微信中是屏蔽掉了APP的下載鏈接的。但是微信最為一個最大的社交平臺,為了自身的利益,屏蔽掉了所有APK的下載鏈接。我們