2013-03-25 68 views
4

我想從Safari中的鏈接打開我的原生iPhone應用。我已經按照this link創建了一個url模式。我已添加appgo://作爲我的url模式,com.xxxx.appgo作爲URL類型下的標識符。以下是我在safari網頁中的鏈接:打開iPhone應用程序 但是,當我點擊鏈接時,應用程序無法打開,Safari會產生錯誤提示:由於地址無效,Safari無法輸入頁面。從safari中的網絡應用中的鏈接打開iphone應用

我的包標識符:com.xxxxx.abc 注意:我的包標識符與URL類型中的標識符不同。這可能是一個問題嗎?

編輯: 我已經使捆綁標識符和URL標識符相同。我還添加在我的應用程序委託下面的代碼:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ 
NSLog(@"application"); 
BOOL returnValue = NO; 
NSString *urlString = [url absoluteString]; 
if([urlString hasPrefix:@"com.xxxx.appgo"]){ 
    returnValue = YES; 
} 
return returnValue; 

}

我在我的iPad上測試它。我首先從xcode安裝最新版本的應用程序,然後按主頁按鈕,然後在safari中打開鏈接。但我仍然收到警告說Safari無法進入頁面,因爲地址無效。我在safari中的鏈接:

<a href="appgo://">Open iPhone App</a> 
+0

貼在這裏 - (BOOL)申請:(UIApplication的*)應用程序handleOpenURL:(NSURL * )url方法形式的應用程序委託。 – 2013-03-25 08:34:03

+0

現在是空的。我還沒有在這個方法中添加任何東西,截至目前 – pankaj 2013-03-25 08:42:26

+0

你必須測試你的應用程序是否接受url並返回yes或no值。 – 2013-03-25 08:45:18

回答

5

實施

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
     BOOL returnValue = NO; 
     NSString *urlString = [url absoluteString]; 
     if([urlString hasPrefix:@"appgo://"]){ 
      returnValue = YES; 
     } 
     return returnValue; 
    } 

編輯: 添加在您的Info.plist文件

<key>CFBundleURLTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleURLName</key> 
      <string>com.xxxx.appgo</string> 
      <key>CFBundleURLSchemes</key> 
      <array> 
       <string>appgo</string> 
       <string>yourSecondScheme</string> 
      </array> 
     </dict> 
    </array> 
+0

請檢查我的編輯。我已經添加了您的代碼,但仍未打開該應用程序。 – pankaj 2013-03-25 09:05:57

+0

你的前綴是appgo檢查我的編輯。 – 2013-03-25 09:14:16

+1

我得到了我的問題。我在模式中添加了://。我已經刪除它,它現在工作正常。謝謝你的幫助 – pankaj 2013-03-25 09:35:18

0

是的。您的包標識符必須與plis文件中的URL類型相同。

欲瞭解更多您可以參考this link

希望這會對你有所幫助。

所有最好的!在應用程序委託

+0

請檢查我的編輯。我已經使捆綁標識符和url類型相同,但它仍然不適合我。 – pankaj 2013-03-25 09:07:12

+1

我沒有在我的應用程序中設置URL類型,只有該方案,它的工作原理。 – 2013-03-25 09:13:23

相關問題