2010-09-20 8 views
19

मैं वर्तमान में एंड्रॉइड में एक वेब ऐप बना रहा हूं। मेरा ऐप वेबव्यू में चलता है, और आईफ्रेम के माध्यम से तीसरे पक्ष की सामग्री लोड करता है। आईफ्रेम आकार तय किया गया है और लोड की गई सामग्री द्वारा बदला नहीं जाना चाहिए।वेबव्यू आईफ्रेम ओवरफ़्लो

डेस्कटॉप क्रोम ब्राउज़र में, यह ठीक काम करता है और लोड की गई सामग्री के अतिप्रवाह भाग को स्क्रॉलबार के माध्यम से स्क्रॉल किया जा सकता है। हालांकि, एंड्रॉइड वेबव्यू में, आईफ्रेम लोड की गई सामग्रियों के आधार पर खुद का आकार बदलता है, जो पृष्ठ लेआउट की गड़बड़ी का कारण बनता है।

क्या किसी और को भी एक ही समस्या का सामना करना पड़ा है?

उत्तर

0

मुझे इस बुरा समस्या से बचने का एक तरीका मिला। मैंने iframe के स्क्रॉलिंग बार को अक्षम कर दिया है, और इसके बजाय एप्लिकेशन में iscroll का उपयोग किया है। यह स्क्रॉलिंग बार लगभग मूल जैसा ही है, हालांकि मेरे एचटीसी मैजिक फोन पर धीमा है।

0

टोनी। मेरी राय में, इस चाल का मुख्य बिंदु यह है कि आपको आईफ्रेम की ऊंचाई को ठीक करना होगा। फिर आप आईफ्रेम में किसी भी div तत्व में iscroll लागू कर सकते हैं। यहां एक छोटा कोड स्निपेट है:

// disable default touchmove handler 
    document.addEventListener('touchmove', function(e){ 
     e.preventDefault(); 
    }); 
    // make the div 'list' scrollable 
    var myScroll = new iScroll('list'); // <div id='list'>Blah</div> 

मैं कोड में jQuery उपयोग करें और यह iScroll साथ अच्छी तरह से काम करता है।

0

मैं अपने ऐप्स वेबव्यू में एक आईफ्रेम दिखाने की कोशिश कर रहा था, मुझे सीएसएस 'ओवरफ्लो: छुपा;' का उपयोग करके मेरे आईफ्रेम के नीचे 30px को काटने में सक्षम नहीं होने की समस्या थी। जिस तरह से मैं इसके आसपास आया था, वह मेरी खुद की index.html फ़ाइल बनाना था और इसे मेरे ऐप के भीतर एक संपत्ति के रूप में स्थानीय रूप से सहेजना था।

आप अपने प्रोजेक्ट के भीतर एक 'संपत्ति' फ़ोल्डर नहीं है, तो, तो चरण 1

जाना

[विंडोज 7 पर (इस 'रेस' फ़ोल्डर के समान नहीं है) ]

चरण 1 - संपत्ति फ़ोल्डर बनाएँ: अपने Android स्टूडियो प्रोजेक्ट क्लिक में:

फ़ाइल -> नई -> फ़ोल्डर -> आस्तियों फ़ोल्डर

Image showing how to make assets folder in Windows

चरण 2 - index.html कि एक <div> के भीतर अपने <iframes> का आयोजन करेगा आप अपने index.html फ़ाइल में नमूना कोड के रूप में उपयोग करने के लिए नीचे दिए गए कोड को कॉपी कर सकते हैं:

<!DOCTYPE html> 
    <html> 
    <head> 
     <title></title> 
     <meta charset="utf-8" /> 
    </head> 
    <body style="margin:0px;"> 
     <div style="width:605px;height:875px;overflow:hidden;"> 
      <iframe src="https://docs.google.com/presentation/d/1QyNNURCVBme50SAuIceq3sh7Ky74LuWNeEM8B910aC4/embed?start=true&loop=true&delayms=2000" scrolling="no" frameborder="0" width="605" height="905" allowfullscreen="false" mozallowfullscreen="false" webkitallowfullscreen="false"></iframe> 
     </div> 
    </body> 
</html> 

चरण 3 - अपने WebView में index.html फ़ाइल कॉल

,210

नोट -

WebView webView = (WebView) findViewById(R.id.main_ad); 
webView.setWebViewClient(new WebViewClient()); 
webView.loadUrl("file:///android_asset/index.html"); //this is why you needed the assets folder 
webView.getSettings().setJavaScriptEnabled(true); 

आशा इस मदद करता है WebViews और iframes

के साथ काम भी 1 व्यक्ति (क्रमांक इस उदाहरण WebView की 'main_ad', इस आईडी को बदलने क्या क्या कभी आप अपने WebViews आईडी नामित है)