2017-01-21 5 views
0

Я играл с веб-сайтом xamarin android, и я столкнулся с этой проблемой. Веб-просмотр не открывает страницы, которые будут открываться на новой вкладке. Например, есть объявления о вакансиях в stackoverflow, которые устанавливаются для открытия на новых вкладках, и когда вы прикасаетесь к ним, ничего не происходит !. Спасибо в продвижении, и вот мой код.Xamarin Webview Wont запускает новые вкладки

[Activity(MainLauncher = false, Theme = "@android:style/Theme.NoTitleBar")] 
public class Obs_Activity : Activity 
{ 
    WebView web_view; 
    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
     SetContentView(Resource.Layout.sist); 
     web_view = FindViewById<WebView>(Resource.Id.webview); 
     web_view.Settings.SetSupportMultipleWindows(false); 
     web_view.Settings.UseWebViewBackgroundForOverscrollBackground = true; 
     web_view.Settings.PluginsEnabled = true; 
     web_view.Settings.AllowFileAccess = true; 
     web_view.Settings.DisplayZoomControls = true; 
     web_view.SetWebViewClient(new HelloWebViewClient(this)); 


     web_view.Settings.JavaScriptEnabled = true; 
     web_view.Settings.JavaScriptCanOpenWindowsAutomatically = true; 
     web_view.Settings.SetSupportZoom(true); 
     web_view.LoadUrl("http://obs.kku.edu.tr/"); 
    } 




} 
public class HelloWebViewClient : WebViewClient 
{ 
    public Activity mActivity; 
    public HelloWebViewClient(Activity mActivity) 
    { 
     this.mActivity = mActivity; 
    } 
    public override bool ShouldOverrideUrlLoading(WebView view, string url) 
    { 
     view.LoadUrl(url); 
     Toast.MakeText(mActivity, "Yukleniyor...", 
          ToastLength.Long).Show(); 
     return true; 
    } 

    public override void OnReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, string host, string realm) 
    { 
     base.OnReceivedHttpAuthRequest(view, handler, host, realm); 
     Toast.MakeText(mActivity, "Hata", ToastLength.Long).Show(); 
    } 
} 

01-23 13: 02: 36,695 Д/WebViewCallback (16789): shouldInterceptRequest = http://ogrenciportal.kku.edu.tr/getinfo.ashx?id=3&tt=690 01-23 13: 02: 36,711 Д/WebViewCallback (16789): onLoadResource = http://ogrenciportal.kku.edu.tr/getinfo.ashx?id=3&tt=690 01-23 13: 02: 36,712 Д/WebViewCallback (16789): doUpdateVisitedHistory = http://ogrenciportal.kku.edu.tr/Default.aspx# перезарядка = ложь 01-23 13: 02: 36,740 Д/WebViewCallback (16789): onPageFinished, URL = http://ogrenciportal.kku.edu.tr/Default.aspx#

Это бревно, когда Я нажимаю эту ссылку, и ничего не происходит.

+0

Возможный дубликат [Как открыть ссылку в новом окне андроида WebView?] (Http://stackoverflow.com/questions/38034769/how-to-open-links-in-new-tab-android- webview) – SushiHangover

+0

Нет, его даже не близко. –

ответ

0

WebView не поддерживает вкладки, если вы хотите, чтобы пользовательский интерфейс с вкладками был необходимо реализовать самостоятельно.

Вы устанавливаете SetSupportMultipleWindows в true, но не реализует WebChromeClient и это OnCreateWindow метод.

Устанавливает, поддерживает ли WebView несколько окон. Если установлено значение true, onCreateWindow (WebView, boolean, boolean, Message) должен быть реализован хост-приложением.

  • Если вы хотите Apply Now/JavaScript всплывающих окон появляются в новой страницы, продолжайте использовать WebViewClient но установить SetSupportMultipleWindows в false.

  • Если вы хотите открыть новый WebView на вкладке, вы должны реализовать WebChromeClient подкласс и переопределить OnWindowCreate и установить его с помощью WebView.SetWebChromeClient иначе ссылка будет открыта в по умолчанию | веб-браузер системы.

+0

Мне не нужен браузер с вкладками, я просто хочу отображать новые вкладки, поскольку они не являются новой вкладкой в ​​том же веб-просмотре. Я установил SetSupportMultipleWindows на значение false, когда вы нажимаете какую-либо ссылку, которая установлена ​​на новую вкладку, ничего не происходит. –

+0

Хорошо, что новые вкладки в порядке, так же, как я хотел на веб-просмотре. Браузер блокирует новую вкладку. Это вопрос, который я думаю. Изменил главный пост. –

+0

Я установил setJavaScriptCanOpenWindowsAutomatically в true. Теперь открывается новая пустая страница. Почему это пустое, странное? –

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