2012-01-21 8 views
9

के साथ वेबव्यू मैं WebView के अंदर एक HTML <IFRAME> लोड करना चाहता हूं, लेकिन मुझे नहीं पता कि यह ऐसा करने में सक्षम क्यों नहीं है।एक आईएफआरएएम एंड्रॉइड

मैं निम्नलिखित कोड का उपयोग कर रहा लोड करने के लिए <IFRAME>

webView.loadData("<iframe src=\"http://www.google.com\"></iframe>", "text/html", 
       "utf-8"); 

यहाँ मैं क्या कोशिश की है है।

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

मैं भी सेटिंग्स shouldOverrideUrlLoading हमेशा गलत लौटने के साथ WebViewClient की कोशिश की है:

WebSettings webViewSettings = webView.getSettings(); 
webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true); 
webViewSettings.setJavaScriptEnabled(true); 
webViewSettings.setPluginsEnabled(true); 
webViewSettings.setBuiltInZoomControls(true); 
webViewSettings.setPluginState(PluginState.ON); 

मैं इंटरनेट अनुमति का उल्लेख किया है।

लेकिन यह अभी काम नहीं कर रहा है।

मैंने अलग-अलग साइटों के साथ यह कोशिश की है, यानी google.com के अलावा अन्य साइटें।

मैं इस पर, सैमसंग नेक्सस एस चल आईसीएस 4.0.3

उत्तर

8

परीक्षण कर रहा हूँ यह है कि यह कैसे बाहर काम किया।

मैंने देखा लॉग बिल्ली मुझे फेंक दिया गया था

वेबकिट अनुमति मुद्दा: EventHub.removeMessages (int क्या 107 =) से पहले WebViewCore

इसे ठीक करने के लिए सेट अप है समर्थित नहीं है, मुझे <application> मेनिफेस्ट के टैग में android:hardwareAccelerated="true" जोड़ना पड़ा।

मैं आईसीएस पर इसका अनुभव कर रहा था और पाया कि एक ही समस्या हनीकॉम डिवाइस के बाद होगी।

आशा है कि यह किसी एक की मदद करेगा। नीचे दिए गए कोड के साथ

+0

हाय, क्या यह एंड्रॉयड: hardwareAccelerated = "सच" का मतलब है? –

+0

@ शारदुल: स्क्रीन शॉट देखें: http://i.imgur.com/OyCxlwh.png, हार्डवेयर एक्सेलेरेटेड = सत्य सेट है लेकिन iframe google.com पेज – YumYumYum

+0

लोड करने में असमर्थ है इस एंड्रॉइड: हार्डवेयर एक्सेलेरेटेड = "सच्ची" संपत्ति नहीं है एप्लिकेशन टैग में खोजें – SAndroidD

6

प्रयास करें:

webView.setInitialScale(1); 
webView.setWebChromeClient(new WebChromeClient()); 
webView.getSettings().setAllowFileAccess(true); 
webView.getSettings().setPluginState(WebSettings.PluginState.ON); 
webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND); 
webView.setWebViewClient(new WebViewClient()); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setLoadWithOverviewMode(true); 
webView.getSettings().setUseWideViewPort(true); 
DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int width = displaymetrics.widthPixels; 

Log.e(SimpleBillsConstants.SIMPLE_BILLS, width + "-" + height); 

String data_html = "<!DOCTYPE html><html> <head> <meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"target-densitydpi=high-dpi\" /> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> <link rel=\"stylesheet\" media=\"screen and (-webkit-device-pixel-ratio:1.5)\" href=\"hdpi.css\" /></head> <body style=\"background:black;margin:0 0 0 0; padding:0 0 0 0;\"> <iframe style=\"background:black;\" width=' "+width+"' height='"+height+"' src=\""+VIDEO_URL+"\" frameborder=\"0\"></iframe> </body> </html> "; 

webView.loadDataWithBaseURL("http://vimeo.com", data_html, "text/html", "UTF-8", null); 
+0

बस एक प्रश्न। यदि आप 'setPluginState (WebSettings.PluginState.ON) करते हैं;' और इसके बाद आप 'setPluginState (WebSettings.PluginState.ON_DEMAND) भी करते हैं;' बाद वाला पूर्व अधिकार को ओवरराइड करेगा? या आप एक या दूसरे को सेट करते हैं और दोनों नहीं। –

0

निम्नलिखित हैक webview.Hope में लोड हो रहा है iframes के लिए मेरे लिए काम किया कुछ एक अभी भी मिल सकती है यह उपयोगी

String webContent="your data to be loaded in webview" 
if(webContent.contains("iframe")){ 
       Matcher matcher = Pattern.compile("src=\"([^\"]+)\"").matcher(webContent); 
       matcher.find(); 
       String src = matcher.group(1); 
       webContent=src; 

       try { 
        URL myURL = new URL(src); 
        webView.loadUrl(src); 

       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } 
      }else { 

       webView.loadDataWithBaseURL(null, "<style>img{display: inline;height: auto;max-width: 100%;}</style>" + webContent, "text/html", "UTF-8", null);} 

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