2016-01-30 2 views
0

Я новичок в Android, и я работаю над простым приложением WebView. Я использую shouldOverrideUrlLoading для обработки некоторых команд из моего удаленного HTML на Android.Использование shouldOverrideUrlLoading для обработки команд на Android WebView

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
if(!url.startsWith("https://www.mywebsite.com)) { 
    switch (url) { 
     case "mycmd://app_logoff": 
      Toast.makeText(context, getString(R.string.logoff_ok), Toast.LENGTH_SHORT).show(); 
      appLogoff(); 
      break; 

     default: 
      view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(urlWeb))); 
    } 
} 

return true; 

Я протестировал на своем устройстве Android (Motorola X Play), и это сработало хорошо! Можно ли сказать, что это будет работать на всех устройствах Android, которые соответствуют минимальному уровню API API? Это хорошая практика?

ответ

0

Поскольку вы используете shouldOverrideUrlLoading означает, что вы реализуете пользовательские WebViewClient и shouldOverrideUrlLoading, вы должны предоставить вашему приложению возможность взять на себя управление, когда новый URL-адрес будет загружен в текущем WebView.

Согласно разработчику documentation этот API добавлен в API Level 1 так, что в основном означает, что она поддерживается так долго и не должно быть проблемой, насколько минимальный уровень API.

Я думаю, никто не может уверенно сказать, что он будет работать или не работать на ВСЕХ устройствах, если на них не протестировано. Вы можете протестировать их с помощью эмуляторов Android с различными конфигурациями, такими как различные SDK/платформы, уровень API и т. Д., Чтобы быть уверенными.

В качестве примечания и осторожности, этот метод не вызывается для запросов с использованием «метода» POST.

-1

от webview android exapmle, shouldOverrideUrlLoading используется. Тем не менее, не рекомендуется, так как апи 24.

boolean shouldOverrideUrlLoading (WebView view, String url)

Новая замена API с новым параметром здесь.

boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)

+1

Пожалуйста, используйте правильное форматирование StackOverflow! –

+0

извините, я новичок здесь, просто исправлю это –

+0

Я бы отредактировал предыдущий ответ, а не написал новый! –

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