2017-08-08 24 views
9

मेरे पास एक ऐप है जो अनिवार्य रूप से उस जानकारी को प्रदर्शित करने के लिए एक वेबसाइट लोड करता है। वेबसाइट के भीतर मेरे पास एक आईफ्रेम है जो ईवेंट कैलेंडर लोड करता है।एंड्रॉइड वेबव्यू आईफ्रेम फ़ॉन्ट स्केलिंग

किसी कंप्यूटर पर वेबसाइट (क्रोम के माध्यम से) देखकर, ईवेंट कैलेंडर बिल्कुल वैसे ही दिखता है जिस तरह से यह होना चाहिए (हाँ मुझे पता है कि फ़ॉन्ट हास्यास्पद रूप से छोटा है)।

एंड्रॉइड ऐप के माध्यम से फायर टीवी स्टिक पर साइट देखना, आईफ्रेम (ईवेंट कैलेंडर) के भीतर फ़ॉन्ट आकार स्केल करता है।

मैं देखा है कि FireTV, साथ संकल्प 1920x1080 वास्तविक प्रदर्शन संकल्प 960x540 है (जो करने के लिए नीचे है कि एक ही प्रभाव का कारण होगा ब्राउज़िंग स्केलिंग) (सही ढंग से प्रदर्शित करता है) क्रोम में @see Screen Size and Resolution

छवि है जब Image in Chrome (displays correctly) FireTV WebView (गलत) FireTV (incorrect) मैं भी फ़ॉन्ट-बढ़ाने जो शुरू में है कि मैं क्या सोचा था कि मुद्दा था, लेकिन मैं दूर कर दिया है तकनीक से कोई भी "को निष्क्रिय करने के लिए" के रूप में है कि यह काम किया (html * {max-height: 99999999px} पर पढ़ लिया है , आदि ...)

मुझे लगता है कि इस मुद्दे को मैं एंड्रॉइड ऐप में वेबव्यू और कॉल करने वाले सेटिंग्स में कॉल करने के तरीके में निहित हूं। मैं लगभग निश्चित हूं कि मुझे कुछ ऐसा याद आ रहा है जो इस मुद्दे को ठीक करेगा।

mWebView = (WebView) findViewById(R.id.activity_main_webview); 
WebSettings webSettings = mWebView.getSettings(); 

webSettings.setJavaScriptEnabled(true); 
webSettings.setMediaPlaybackRequiresUserGesture(false); 
webSettings.setUseWideViewPort(true); 
webSettings.setLoadWithOverviewMode(true); 
webSettings.setSupportZoom(true); 
webSettings.setDefaultFontSize(12); 
mWebView.setInitialScale(1); 

संपादित करें: 1: ठीक है, मैं पता लगा यह न केवल iFrame कि स्केलिंग है है, लेकिन यह FireTV पर मौजूद सभी सामग्री है (यह जाहिरा तौर पर है यहाँ क्या मैं WebView सेटिंग्स के लिए है विशेषता)। उनका प्रदर्शन संकल्प (डीपी) 960x540 है। ऐसा लगता है कि चीजें 1920x1080 बनाने का कोई तरीका नहीं है, लेकिन जब मैं राइज़ विजन के "माई राइज प्लेयर" ऐप के माध्यम से आईफ्रेम प्रदर्शित करता हूं, तो सब कुछ सामान्य के रूप में दिखाई देता है।

फ़ायरवेट पर चीजें 1920x1080 को दिखाने के लिए उन्हें एक तरीका कैसे मिला?

यदि राइज़ विजन की देव टीम में कोई भी टिप्पणी करने और मुझे सही दिशा में इंगित करने की परवाह करेगा, तो मैं इसकी सराहना करता हूं!

+1

क्या आपने स्वचालित स्केलिंग से बचने के लिए webSettings.setTextZoom() का उपयोग करने का प्रयास किया है? – altskop

+0

@altskop यह निश्चित रूप से सही दिशा में एक कदम है। मैंने इसे जोड़ा और इसे 40 तक सेट किया (केवल परीक्षण के लिए हार्ड कोड कोड के रूप में) और यह कुछ पाठ को सही करता है लेकिन यह सब नहीं। जिस पाठ को सही किया गया था वह अपने फ़ॉन्ट आकार के लिए vh का उपयोग कर रहा था। पाठ जो सीधे पीएक्स का इस्तेमाल करता था उसे ठीक नहीं किया गया था और अभी भी बढ़ाया गया था। इसके लिए कोई विचार? – Michael

उत्तर

2

इसका समाधान इतना आसान था। मैं सिर्फ सही दिशा

में हो रही जो उन लोगों के कोड के बाकी सोच रहे हैं के लिए के लिए @altskop करने के लिए 100

mWebView.getSettings.setTextZoom(100); 
mWebView.setInitialScale(100); 

धन्यवाद इन मूल्यों को निर्धारित करने की जरूरत है, यहाँ तुम जाओ:

WebView mWebView = (WebView) findViewById(R.id.activity_main_webview); 
WebSettings webSettings = mWebView.getSettings(); 

mWebView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     Log.d(TAG, "Finished Loading."); 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
}); 

webSettings.setJavaScriptEnabled(true); 
webSettings.setMediaPlaybackRequiresUserGesture(false); 
webSettings.setTextZoom(100); 

mWebView.setInitialScale(100); 
mWebView.getSettings().setDomStorageEnabled(true); 
mWebView.loadUrl("http://your.url.com"); 
संबंधित मुद्दे