Удалите ссылку отмены в приложении Twitter, открытом с помощью фреймворка ShareKit - PullRequest
1 голос
/ 15 марта 2012

Я хочу удалить ссылку «отменить и вернуться в приложение» со страницы Twitter, открытой с помощью ShareKit Framework.

Когда я нажимаю на эту ссылку, она перенаправляет меня на сайт, который я ввел в dev.twitter.com.Я хочу удалить эту ссылку или, по крайней мере, закрыть диалоговое окно Twitter и вернуться в свое приложение.

Я попытался отладить код общего набора и не смог найти код для этой конкретной ссылки.

Я знаю, что ссылка Отмена приведет нас на веб-сайт, который мы предоставляем в поле веб-сайта developer.twitter.com.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2012

Если вы хотите перехватить запрос на отмену и скрыть свой UIWebView, вы можете сделать это в контроллере представления, который содержит используемый вами UIWebView.Используйте функцию делегата

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

для захвата запросов URL.Если вы ищете строку, которая относится к возврату в приложение, вы можете выполнить любое действие, которое вы хотите (например, закрыть контроллер представления и вернуться в приложение).Это можно сделать с помощью следующего кода:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString* requestURL = request.URL.absoluteString;

    if ([requestURL rangeOfString:@"denied="].location != NSNotFound)
    {
        // DISMISS YOUR VIEW CONTROLLER HERE
        return NO;
    }
}

Это, конечно, зависит от URL-адреса, возвращаемого Твиттером, который может быть изменен, и строку «отказано =» можно так же легко заменить на вашURL веб-сайта.

1 голос
/ 15 марта 2012

Добавьте схему URL в свое приложение, затем заполните адрес веб-сайта на dev.twitter.com новой схемой URL (например, «yourapp: // twitterauthfail»).Таким образом, когда ваш пользователь нажмет кнопку отмены, он будет перенаправлен обратно в ваше приложение.

0 голосов
/ 16 марта 2012

Вы можете определить собственные схемы URL, которые будут открывать ваше приложение, но вы не можете сделать ваше приложение назначенным обработчиком для определенных доменных имен, чтобы при открытии этого домена в Safari ваше приложение запускалось автоматически.

Для ясности, схема - это бит перед доменным именем, например http:, так что вы можете сделать свое приложение обработчиком для URL, которые запускают myapp: например. Очевидно, что настоящие URL-адреса не начинаются с myapp: кроме тех, которые вы разработали специально для использования с вашим приложением - вот и весь смысл.

К сожалению, эти URL-адреса будут работать только с вашим приложением, их нельзя открыть в Safari, если ваше приложение не установлено. iTunes, Google maps, Youtube и т. д. работают на iPhone так, потому что Apple жестко закодировала их как особые случаи, но они не делают этот механизм доступным для сторонних приложений.

Чтобы зарегистрировать пользовательскую схему для вашего приложения, следуйте этому руководству: http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

Вместо этого вы можете настроить обычную веб-страницу, которая использует javascript для обнаружения пользовательского агента устройства и, если это iPhone, автоматически перенаправляет на URL-адрес пользовательской схемы приложения, используя document.location = 'myapp: ... '. Я не уверен, что произойдет, если вы попытаетесь перенаправить на собственную схему URL, если приложение не установлено, хотя. Это может ничего не делать, что было бы идеально для вас, или это может привести к ошибке или перейти на пустую страницу, в этом случае вам будет лучше выложить сообщение типа «нажмите здесь, чтобы запустить приложение, или нажмите здесь, чтобы скачайте его из магазина приложений ", что, по-видимому, и делают большинство сайтов.

...