Диалог аутентификации Foursquare теперь присоединяется к настройке ссылок для Amazon App Store - PullRequest
0 голосов
/ 02 февраля 2012

Привет, у меня есть приложение для Android, которое аутентифицирует и использует API Foursquare v2.Проблема, с которой я столкнулся, заключается в следующем.

Когда я нажимаю, загрузите следующий URL для запуска аутентификации:

https://foursquare.com/oauth2/authenticate?response_type=code&client_id=XXXXXXXXX&redirect_uri=myapp://xxxxxx

соединениеКнопка ссылки на Android Market для загрузки Android-приложения Foursquare.

Это прекрасно, за исключением того, что процесс одобрения Amazon App Strore запрещает устанавливать ссылки на другие рынки в приложениях, опубликованных в их App Store.Есть ли способ контролировать это и иметь ссылку на веб-страницу регистрации на мобильном телефоне?Или, может быть, я могу попробовать захватить HTML и заменить целевую ссылку.Это звучит действительно сложно, и я не уверен, как это сделать, если это возможно.Любые мысли будут с благодарностью.

1 Ответ

0 голосов
/ 03 февраля 2012

Я не хочу отвечать на свой вопрос, но я понял это.Прежде всего вы должны знать, что я использую класс, который наследуется от WebViewClient.Я перезаписываю проверку mustOverrideUrlLoading на соответствие URL, который я хочу переопределить, заменяю его новым URL и, наконец, вызываю view.loadUrl (url).

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            if (url.startsWith(FoursquareApp.CALLBACK_URL)) {
                String urls[] = url.split("=");

                mListener.onComplete(urls[1]);

                FoursquareDialog.this.dismiss();

                return true;                    
            } 
            else if (url.equals("https://market.android.com/details?id=com.joelapenna.foursquared")) {
                url = "http://www.amazon.com/gp/product/B004U7AKJK?ie=UTF8&ref=mas_dl";
                Log.v(TAG, "in onShouldOverrideUrlLoading replacing url with: " + url);
                view.loadUrl(url);
            }

            return false;
        }
...