2010-12-05 14 views
8

मेरे पास मेरे आवेदन में 2 विचार हैं:किसी अन्य दृश्य में एक वेबव्यू एम्बेड करना

ए। res/layout/main.xml - 1 बटन

बी के साथ एक मानक दृश्य। रेस/लेआउट/web_view.xml

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

जब मैं पहली बार दृश्य (क) पर बटन पर क्लिक करें, यह वेबव्यू (ख) लोड करता है और एक यूआरएल को लोड करता है:

// click on the "Browser" button in view a 
public void goToWebView(View view) { 
     setContentView(R.layout.web_view); 
     WebView mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("http://www.google.com"); 
    } 

सब काम कर रहा है ठीक है, यूआरएल लोड अच्छी तरह से है लेकिन ब्राउज़र को अपने स्वयं के दृश्य (तीसरा एक, स्वयं बी नहीं) में तुरंत चालू किया गया है और मेरा लक्ष्य वेब साइट का उपयोग मेरे आवेदन में कुछ HTML कोड दिखाने के लिए करना है, इसके बाहर नहीं, अलग ब्राउज़र

कोई भी विचार किसी भी विचार?

यह एपीआई स्तर 8/एंड्रॉइड 2.2 का उपयोग करके किया जाता है।

आपकी मदद के लिए धन्यवाद। पॉल

+0

यह बात मुझे क्या हुआ है जब मैं कुछ यूआरएल, जिसके लिए आशय-श्रोताओं दर्ज किए गए थे खोलने गया था। उदाहरण के लिए Google क्रोम 'http: // www.google.com' खोलने के लिए खुद को पंजीकृत करता प्रतीत होता है। जब मैंने किसी अन्य डोमेन 'http: // www.something.com' की कोशिश की तो यह एक ही दृश्य में खुल जाएगा। बस FYI –

उत्तर

15

दरअसल मैं अंत में समझ गया। यहां तक ​​कि अगर आप प्रोग्राम के

mWebView.loadUrl("http://www.google.com"); 

साथ यूआरएल लोड आप भी डिफ़ॉल्ट व्यवहार (जो एक नया ब्राउज़र दृष्टांत में एक यूआरएल खोल रहा है) mofify किया है।
पिछले कोड को 2 एन्हांसमेंट की आवश्यकता है।

// override default behaviour of the browser 
private class MyWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    } 

फिर, दृश्य जो Webclient नए व्यवहार का उपयोग करता है के लिए निर्धारित:

public void goToWebView(View view) { 
     setContentView(R.layout.web_view); 
     WebView mWebView = (WebView) findViewById(R.id.webview); 
     // add the following line ---------- 
     mWebView.setWebViewClient(new MyWebViewClient()); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("http://www.google.com"); 
    } 
+0

हाँ यह बात है। आपका सवाल वास्तव में उलझन में था। वेबव्यू – Varun

+0

+1 में इसका उपयोग पूर्ण –

+0

में आपका स्वागत है @Paul धन्यवाद। आखिर में मैंने पाया कि मैं दो घंटों के लिए क्या खोज रहा हूं। – bogdanmogo

संबंधित मुद्दे