2013-08-09 2 views
0

У меня есть веб-просмотр, который показывает рекламу (а не мои объявления), проблема заключается в том, что пользователь нажимает кнопку «x», чтобы выйти из объявления, объявление по-прежнему направляет их на сайт. Что мне интересно, так как я не могу управлять рекламой, могу ли я вместо этого отключить управление страницей/пересылку внутри webview? это означает, что даже если пользователь нажимает ссылку в моем веб-обзоре, ничего не должно произойти.Отключить пересылку страниц в Android-браузере Android

ответ

2

Вы ищете способ WebClient.shouldOverrideUrlLoading.

webview.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading (WebView view, String url){ 
     //True if the host application wants to leave the current WebView and handle the url itself, otherwise return false. 
     return true; 
    } 
}); 
+0

Благодарим вас, попробуйте в ближайшее время. –

0

Я пробовал использовать shouldOverrideUrlLoading, но это не сработало. Похоже, этот метод вызывается только один раз при загрузке html. После этого вы нажимаете ссылку, но метод больше не вызывается.

Я также создаю веб-приложение для встраивания Youtube Player. Вместо перенаправления рекламы из WebView я предпочитаю открывать рекламу в браузере. Поэтому я переопределить onLoadResource метод:

\t  @Override 
 
\t  public void onLoadResource(final WebView view, final String url) { 
 
\t  \t if(url.indexOf("googleadservices.")>-1){ 
 
\t \t \t \t view.getSettings().setJavaScriptEnabled(false); 
 
\t \t  \t view.stopLoading(); 
 
\t \t  \t view.postDelayed(
 
\t \t  \t \t \t new Runnable(){ 
 
\t \t  \t \t \t \t @Override 
 
\t \t  \t \t \t \t public void run(){ 
 
\t \t  \t \t \t \t \t Uri uri=Uri.parse(url); 
 
\t \t  \t \t \t \t \t Intent i=new Intent(Intent.ACTION_VIEW,uri); 
 
\t \t  \t \t \t \t \t i.setClassName("com.android.browser","com.android.browser.BrowserActivity"); 
 
\t \t  \t \t \t \t \t startActivity(i); 
 
\t \t  \t \t \t \t } 
 
\t \t  \t \t \t } 
 
\t \t  \t \t ,100 
 
\t \t  ); 
 
\t  \t } 
 
    \t }

Он работал. Когда я нажал ссылку на рекламу, откроется новый браузер, в котором сайт объявлений отображается хорошо, а WebView не перенаправлен. Когда я нажимаю кнопку возврата, WebView снова появляется, и я могу продолжить просмотр видео.

Но все еще были проблемы. Если я повторю открытие браузера и многократно возвращаюсь в WebView, WebView может не заблокировать перенаправление на сайт объявлений. Он просто перенаправляется на сайт объявлений. Если мне повезет, я могу повторить открытие и возвращение 100 раз. Но иногда это терпело неудачу, когда я повторял несколько раз. Я не знаю почему.

Есть ли в anyboday какие-либо идеи о том, как его улучшить? Или есть другой способ отключить рекламу?

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