2013-03-25 2 views
4

Я пытаюсь открыть свое родное приложение iPhone из ссылки в сафари. Я создал this link, чтобы создать схему URL. Я добавил appgo:// в качестве моей схемы url и com.xxxx.appgo как идентификатор под типами URL. Ниже приведена моя ссылка на веб-странице в Safari: Open iPhone App Но когда я нажимаю на ссылку, приложение не открывается, а сафари выдает предупреждение с ошибкой: 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 не может войти на страницу, поскольку адрес недействителен. Моя ссылка в сафари:

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

паста здесь - (BOOL) применение: (UIApplication *) приложения handleOpenURL: (NSURL *) url-метод формирует делегат приложения. –

+0

пока пусто. Я не добавил ничего в этот метод на данный момент – pankaj

+0

, вам нужно проверить, принимает ли ваше приложение URL-адрес и возвращает значение yes или no. –

ответ

5

Внедрение в приложение делегата

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

Edit: Добавить в файле 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

+0

Ваш префикс - это проверка моего прав. –

+1

У меня проблемы. Я добавил: // в схему. Я удалил его, и теперь он отлично работает. Спасибо за вашу помощь – pankaj

0

Да. Идентификатор пакета должен быть таким же, как и типы URL-адресов в файле plis.

Для получения дополнительной информации вы можете обратиться this link.

Надеюсь, это будет полезно для вас.

Все самое лучшее !!!

+0

Проверьте мои изменения. Я сделал идентификатор пакета и типы URL, но он все еще не работает для меня. – pankaj

+1

У меня нет набора URL-адресов в моем приложении, только схема, и она работает. –

Смежные вопросы