2013-04-25 3 views
23

लोड नहीं WebView मैं URLWebView मेंएंड्रॉयड यूआरएल

मैं निम्नलिखित कोड का इस्तेमाल किया है लोड करना चाहते हैं:

webView = (WebView) findViewById(R.id.webview1); 
webView.setWebViewClient(new HostsWebClient()); 
webView.getSettings().setPluginState(PluginState.ON); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); 
webView.getSettings().setPluginsEnabled(true); 
webView.getSettings().setSupportMultipleWindows(false); 
webView.getSettings().setSupportZoom(false); 
webView.setVerticalScrollBarEnabled(false); 
webView.setHorizontalScrollBarEnabled(false); 

webView.loadUrl(URL); 

लेकिन जब मैंने उसे निष्पादित, मैं यूआरएल लोड करने में सक्षम नहीं हूँ। मुझे वेब पेज उपलब्ध नहीं है।

क्या कोई मदद कर सकता है?

+0

डिफ़ॉल्ट एंड्रॉयड ब्राउज़र में URL काम लोड हो रहा है लागू किया था? –

+1

क्या आपने इंटरनेट अनुमति दी है? – Lucifer

+0

@LeonLucardie डिवाइस ब्राउज़र में काम कर रहे हैं – String

उत्तर

67

क्या आपने अपनी मेनिफेस्ट फ़ाइल में इंटरनेट अनुमति जोड़ा है? यदि निम्नलिखित पंक्ति नहीं जोड़ती है।

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

आशा है कि यह आपकी मदद करेगा।

संपादित

उपयोग नीचे लाइनों।

public class WebViewDemo extends Activity { 


    private WebView webView; 


    Activity activity ; 
    private ProgressDialog progDailog; 

    @SuppressLint("NewApi") 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     activity = this; 

     progDailog = ProgressDialog.show(activity, "Loading","Please wait...", true); 
     progDailog.setCancelable(false); 



     webView = (WebView) findViewById(R.id.webview_compontent); 



     webView.getSettings().setJavaScriptEnabled(true);  
     webView.getSettings().setLoadWithOverviewMode(true); 
     webView.getSettings().setUseWideViewPort(true);   
     webView.setWebViewClient(new WebViewClient(){ 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       progDailog.show(); 
       view.loadUrl(url); 

       return true;     
      } 
      @Override 
      public void onPageFinished(WebView view, final String url) { 
       progDailog.dismiss(); 
      } 
     }); 

     webView.loadUrl("http://www.teluguoneradio.com/rssHostDescr.php?hostId=147"); 

     } 
+0

में दिए गए लूसीफर हां मैंने पहले से ही इंटरनेट अनुमतियां – String

+0

मेरे संपादित उत्तर को जोड़ा है। वह कोड है जिसे मैंने – itsrajesh4uguys

+1

का उपयोग किया है आपने अपना जीवन बचाया है। धन्यवाद। अच्छा और साफ कोड। मैंने यह भी सीखा कि एक सरल प्रगति पट्टी बनाना कितना आसान है। – CodeShadow

15

मैनिफेस्ट में अनुमति इंटरनेट अनुमति जोड़ें।

<uses-permission android:name="android.permission.INTERNET"/> रूप

इस कोड को इसे अपने वेबव्यू

webview.setWebChromeClient(new WebChromeClient()); 

तो WebChromeClient वर्ग के लिए आवश्यक तरीकों को लागू करने पर

public class WebActivity extends Activity { 
    WebView wv; 

String url="http://www.teluguoneradio.com/rssHostDescr.php?hostId=147"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_web); 
    wv=(WebView)findViewById(R.id.webUrl_WEB); 



WebSettings webSettings = wv.getSettings(); 
    wv.getSettings().setLoadWithOverviewMode(true); 
    wv.getSettings().setUseWideViewPort(true); 
    wv.getSettings().setBuiltInZoomControls(true); 
    wv.getSettings().setPluginState(PluginState.ON); 


    wv.setWebViewClient(new myWebClient()); 

    wv.loadUrl(url); 
} 




public class myWebClient extends WebViewClient { 
    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     // TODO Auto-generated method stub 
     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     // TODO Auto-generated method stub 

     view.loadUrl(url); 
     return true; 

    } 
} 
+4

* sidenote: * आपने 'वेबसेटिंग' चर का उपयोग नहीं किया – Raptor

+0

'setLoadWithOverviewMode' क्यों महत्वपूर्ण है? –

3

उपयोग निम्नलिखित बातें काम कर रहे।

+0

आवश्यक विधियां क्या हैं? – confile

+0

'WebChromeClient() ' –

+0

में किसी भी विधि की आवश्यकता नहीं है यदि किसी को भी वेब सामग्री लोड करने के लिए वेबव्यू के लिए एक ही समस्या का सामना करना पड़ रहा है, तो' WebViewClient' उदाहरण 'के साथ अपनी विधि' setWebViewClient' को कॉल करना आवश्यक है। किसी भी तरीके को ओवरराइड करने की कोई आवश्यकता नहीं है। –

0

सबसे पहले, जांचें कि आपके पास मैनिफेस्ट फ़ाइल में इंटरनेट अनुमति है या नहीं।

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

फिर आप OnCreate (में कोड के बाद) को प्रारंभ में जोड़ सकते हैं या() method-

final WebView webview = (WebView) rootView.findViewById(R.id.webview); 
     webview.setWebViewClient(new MyWebViewClient()); 
     webview.getSettings().setBuiltInZoomControls(false); 
     webview.getSettings().setSupportZoom(false); 
     webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
     webview.getSettings().setAllowFileAccess(true); 
     webview.getSettings().setDomStorageEnabled(true); 
     webview.loadUrl(URL); 

और एक वर्ग का वेब दृश्य का कॉलबैक को संभालने के लिए लिखने - एक ही कक्षा में

public class MyWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
          //your handling... 
       return super.shouldOverrideUrlLoading(view, url); 
     } 
    } 

, आप अन्य महत्वपूर्ण कॉलबैक का भी उपयोग कर सकते हैं जैसे कि

- onPageStarted() 
- onPageFinished() 
- onReceivedSslError() 

इसके अलावा, आप स्वाइप रीफ्रेश को सक्षम करने और वेबव्यू रीफ्रेश करने के लिए "SwipeRefreshLayout" जोड़ सकते हैं।

<android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipeRefreshLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <WebView 
      android:id="@+id/webview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </android.support.v4.widget.SwipeRefreshLayout> 

और वेबव्यू ताज़ा है जब उपयोगकर्ता स्क्रीन स्वाइप:

SwipeRefreshLayout mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout); 
      mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
       @Override 
       public void onRefresh() { 
        new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          mSwipeRefreshLayout.setRefreshing(false); 
          webview.reload(); 
         } 
        }, 3000); 
       } 
      }); 
0

बस एक वैकल्पिक समाधान के रूप में:

मुझे webView.getSettings().setUserAgentString("Android WebView") के लिए चाल किया था।

मैं पहले से ही इंटरनेट की अनुमति और WebViewClient रूप में अच्छी तरह WebChromeClient

5

के रूप में हो सकता है एसएसएल

@Override 
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 
     // ignore ssl error 
     if (handler != null){ 
      handler.proceed(); 
     } else { 
      super.onReceivedSslError(view, null, error); 
     } 
    }