2014-03-01 96 views
1

某些類型的Url在Webview中未在我的應用程序中加載,但可以在設備瀏覽器中加載。以下是這不是我的代碼 - 工作示例URL 「http://apps.takeyourapp.com/testApp/staging/index.htmlURL無法在webview中加載,但在android中的瀏覽器中加載?

package com.example.webviewdemo; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.ViewGroup; 
import android.webkit.WebView; 
import android.widget.FrameLayout; 
import android.widget.LinearLayout.LayoutParams; 

public class MainActivity extends Activity { 

    WebView webViewPlaceholder; 
    String URL = "http://apps.takeyourapp.com/testApp/staging/index.html"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     webViewPlaceholder = (WebView) findViewById(R.id.webholder); 
     webViewPlaceholder.getSettings().setJavaScriptEnabled(true); 
     webViewPlaceholder 
       .setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
     webViewPlaceholder.setScrollbarFadingEnabled(true); 
     webViewPlaceholder.getSettings().setLoadsImagesAutomatically(true); 
     webViewPlaceholder.getSettings().setUseWideViewPort(true); 
     webViewPlaceholder.loadUrl(URL); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

回答

1

public class myWebClient extends WebViewClient { 
    @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       // TODO Auto-generated method stub 
       view.loadUrl(url); 
       return true; 
      } 
} 

而且setWebViewClient像創建WebViewClient和負載url

webView.setWebViewClient(new myWebClient()); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl("http://apps.takeyourapp.com/testApp/staging/index.html"); 

而且還將INTERNET許可添加到manifest.xml

<uses-permission android:name="android.permission.INTERNET" /> 
+0

不應從shouldOverrideUrlLoading調用view.loadUrl。只需返回false;否則像這樣的頁面會破壞你的應用程序:http://jsbin.com/gupug/1/quiet –

0

試試這個解決方案。

public class Main extends Activity { 

    private WebView mWebview ; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     mWebview = new WebView(this); 

     mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript 

     final Activity activity = this; 

     mWebview.setWebViewClient(new WebViewClient() { 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       Toast.makeText(activity, description, Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     mWebview .loadUrl("http://apps.takeyourapp.com/testApp/staging/index.html"); 
     setContentView(mWebview); 

    } 

} 
相關問題