Как перенаправить на главную страницу после получения токена авторизации в Android apk? - PullRequest
0 голосов
/ 25 февраля 2020

мы не можем загрузить фид на главной странице после получения токена авторизации. мы пытаемся получить фид (статьи), отправляя токен аутентификации в заголовках. Дело в том, что канал загружается во второй раз, когда мы открываем приложение, но не в первый раз. наше приложение регистрируется в db при установке, и у нас есть API для получения токена. но канал не загружается одновременно вскоре после получения токена. вместо этого он загружается только после того, как мы закроем приложение и снова откроем его во второй раз. Как заставить его работать, чтобы загрузить канал при первом доступе? прямо сейчас мы получаем пустую страницу при первом доступе.

Мы попробовали:

В Utility. Java

public static void getAdId(String token,Context context) {

        Thread thread = new Thread() {
            @Override
            public void run() {
                try {
                    AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context);
                    String advertisingId = adInfo != null ? adInfo.getId() : null;
                    Constant.MOBILE_ADID = advertisingId;
                    Log.i("TAG9", "ADID: " + advertisingId);

                    if (!Constant.MOBILE_ADID.isEmpty() && !token.isEmpty()) {
                        if (checkInternetConnection(context))
                            sendTokenToServer(context, Constant.MOBILE_ADID, token); // App registration
                        loginDeatialsToServer(context,Constant.MOBILE_ADID); // fetches the token

                    }
                } catch (IOException | GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException exception) {
                    exception.printStackTrace();
                }
            }
        };
        thread.start();
    }

Клиентский класс:

 builder.addInterceptor(new Interceptor() {
                    Context context;
                    @Override
                    public okhttp3.Response intercept(Chain chain) throws IOException {

                        String token1= SharedPreference.getInstance(context).getLoginToken(context);
                        if (token1==null){
                            Utility.loginDeatialsToServer(context, Constant.MOBILE_ADID);
                        }
                        OkHttpClient client = new OkHttpClient();
                        Request request = new Request.Builder()
                                .url(apiurl)
                                .get()
                                .addHeader("Authorization",token1)
                                .build();

                        okhttp3.Response response = client.newCall(request).execute();

                        return(response);

                    }

                });

1 Ответ

0 голосов
/ 25 февраля 2020

Используемый вами строитель больше не будет создаваться, поэтому вам нужно создать новый конструктор для ответа API, попробуйте снова создать builder при получении токена, при закрытии приложения и снова откройте, он работает нормально, потому что строитель создаст снова, попробуйте распечатать журналы, вы найдете ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...