2017-01-02 4 views
2

Im сталкивается с одной проблемой в Android 7.0 (moto g4), где я пытаюсь загрузить один URL-адрес в веб-браузере, но он показывает пустой белый экран. Он работает с Android M и ниже.Android 7.0 показывает пустой экран при попытке открыть url в webview

public class MainActivity extends Activity { 

private String webviewURL="http://henmilholidayhomesgoa.com/player2/documentation/EULA.html"; 


    private WebView wv; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     wv= (WebView) findViewById(R.id.webview); 
     wv.getSettings().setTextZoom(60); 
     wv.getSettings().setBuiltInZoomControls(true); 
     wv.getSettings().setJavaScriptEnabled(true); 
     wv.loadUrl(webviewURL); 

    } 

} 

Примечание: - URL упоминается в коде не фактический URL, который, к сожалению, я не могу поделиться :(Сво URL с HTTPS Но данный адрес в пост на самом деле работает, пожалуйста, дайте мне знать.. если любой другой вход являются needed.Thanks заранее

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
      <WebView 
       android:id="@+id/webview" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="center" /> 
    </RelativeLayout> 
+1

Какой тип URL-адреса вы открываете, я имею в виду любой документ или веб-сайт или PDF-документ или любой другой тип медиа? –

+1

Если вышеприведенный URL-адрес работает нормально, тогда ваш желаемый URL-адрес. URL-адрес вашего сообщения http пытается ввести какой-либо другой URL-адрес с https Скажите: «https://www.google.com» –

+1

Вам нужно будет найти URL-адрес, который может воспроизвести проблему, которую вы * можете * положить в вашем вопросе. – CommonsWare

ответ

1

Попробуйте этот пример кода:

в этом есть WebView и прогресс bar.In этого кода URL будет загружен, как только прогресс бар исчезает, и если есть какая-либо связь w В URL-адресе он откроется и в веб-просмотре.

Ниже Java код:

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class ShowWebView extends Activity { 

    //private Button button; 
    private WebView webView; 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.show_web_view); 

     //Get webview 
     webView = (WebView) findViewById(R.id.webView1); 

     startWebView("http://www.androidexample.com/media/webview/login.html"); 

    } 

    private void startWebView(String url) { 

     //Create new webview Client to show progress dialog 
     //When opening a url or click on link 

     webView.setWebViewClient(new WebViewClient() {  
      ProgressDialog progressDialog; 

      //If you will not use this method url links are opeen in new brower not in webview 
      public boolean shouldOverrideUrlLoading(WebView view, String url) {    
       view.loadUrl(url); 
       return true; 
      } 

      //Show loader on url load 
      public void onLoadResource (WebView view, String url) { 
       if (progressDialog == null) { 
        // in standard case YourActivity.this 
        progressDialog = new ProgressDialog(ShowWebView.this); 
        progressDialog.setMessage("Loading..."); 
        progressDialog.show(); 
       } 
      } 
      public void onPageFinished(WebView view, String url) { 
       try{ 
       if (progressDialog.isShowing()) { 
        progressDialog.dismiss(); 
        progressDialog = null; 
       } 
       }catch(Exception exception){ 
        exception.printStackTrace(); 
       } 
      } 

     }); 

     // Javascript inabled on webview 
     webView.getSettings().setJavaScriptEnabled(true); 

     // Other webview options 
     /* 
     webView.getSettings().setLoadWithOverviewMode(true); 
     webView.getSettings().setUseWideViewPort(true); 
     webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
     webView.setScrollbarFadingEnabled(false); 
     webView.getSettings().setBuiltInZoomControls(true); 
     */ 

     /* 
     String summary = "<html><body>You scored <b>192</b> points.</body></html>"; 
     webview.loadData(summary, "text/html", null); 
     */ 

     //Load url in webview 
     webView.loadUrl(url); 


    } 

    // Open previous opened link from history on webview when back button pressed 

    @Override 
    // Detect when the back button is pressed 
    public void onBackPressed() { 
     if(webView.canGoBack()) { 
      webView.goBack(); 
     } else { 
      // Let the system handle the back button 
      super.onBackPressed(); 
     } 
    } 

} 

Теперь ниже соответствующего XML код:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <WebView 
    android:id="@+id/webView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/>  
</LinearLayout> 

Пожалуйста, проверьте этот код в андроида 7.0. Надеюсь, это поможет вам!

1

Я скопировал этот же код и запустил приложение на nougat Nexus 9. Требуется время, чтобы загрузить URL-адрес в течение 5 минут, в противном случае проверьте его на другом устройстве Nougat.

public class WebviewMainActivity extends AppCompatActivity { 
private WebView wv; 
private String webviewURL = "http://stackoverflow.com/questions/41425766/android-7-0-shows-blank-screen-when-trying-to-open-url-in-webview"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_webview_main); 
    wv = (WebView) findViewById(R.id.webview); 
    wv.getSettings().setTextZoom(60); 
    wv.getSettings().setBuiltInZoomControls(true); 
    wv.getSettings().setJavaScriptEnabled(true); 
    wv.loadUrl(webviewURL); 
}} 

See this image from Nexus 9

Надежда это help.Happy coding.Please дайте мне знать, если это было полезно.

0

У меня была аналогичная проблема с Asus Nexus 7. Версия веб-браузера была 56, в то время как приложение браузера Chrome имело более низкую версию. После того как я обновил приложение Google Chrome, веб-просмотр начал работать нормально.

+0

Привет, сэр, у меня есть пиксель Google. У меня проблема с той же проблемой, и по вашему комментарию у меня есть обновление моего приложения crome, но все еще такое же лицо проблемы. Пожалуйста, ответьте мне на любое другое решение. заранее спасибо. –