Alternative ways for displaying a web page in Qt - google-maps

When I visit this webpage, which is a simple map from Google Maps with, for example, Chrome or Firefox, everything is natural. You can double click to zoom in, you can drag the map and you can drag the street view mode icon.
But when this web page is loaded into a QWebView object with the following code, I don't have mouse dragging ability. So for example I can't drag the map to change it.
QWebView view;
view.setUrl(QUrl("https://google-developers.appspot.com/maps/documentation/javascript/examples/map-simple"));
view.show();
And I couldn't find any solution for it so far. Is there any other way to display a web page in a Qt widget?

There's already a sample browser in Qt that provides this functionality:
[QTDIR]\demos\browser
I'm not sure how long this has been included, but it's certainly in 4.8. It implements a fairly complete browser but the code you're interested in is in the file webview.cpp. This wraps QWebView and demonstrates how to implement mouse events, clicks, downloads, etc.

QtWebkit is kind of Buggy and uses a very old version of rendering Engine .which could only be compared to early versions of chrome or safari .
If you are just planning to give a simple preview of the webpage inside the application you could use QWebEngine.
it will give you better rendering (refer this link)
http://qt-project.org/wiki/QtWebEngineHowToTry
the project is still under Development .and many features like js injection etc are still missing .
Know this fact Webpage rendering is a mess in Qt.
(if nothing works for you can completely drop Qt and try Mozilla XUL ,it has a very good webpage layout engine "Gecko")

Related

Video is not playing in one iPad specifically

I am developing an app for iOS which includes a UIWebView which, among other this, contains a video (stored locally, in the same folder as some images which are being displayed correctly).
This works fine in my own iPad, but I have been given another one at work to install the app to and there it shows nothing more than the video controls. When I click on the play button nothing happens. The iPad is owned by the company so any security feature might be enabled.
I have researched quite a lot and I cannot find any reasons why the app may be working on one iPad and not on another one. I know it might be impossible to fix without having a passcode or something like that but I need to know at least which configuration might be the one that is making the app not to work.
Using WKWebView fixed it. UIWebView should not be used any longer unless it is specifically needed.
From Apple documentation:
In apps that run in iOS 8 and later, use the WKWebView class instead of using UIWebView. Additionally, consider setting the WKPreferences property javaScriptEnabled to false if you render files that are not supposed to run JavaScript.

How do I get rid of the sidebar and toolbar when embedding a pdf in an html file?

Trying to embed a pdf on my website like so:
<iframe src="filename.pdf" type='application/pdf' frameborder="0"></iframe>
The website is a rails site, and currently I'm only running it on a local server.
The problem is that the pdfs render with a toolbar on top and a sidebar with my adobe creative cloud account information, as seen in the picture below (the actual content of the pdf displays in the white box under the toolbar and to the left of the sidebar)
How can I get the pdf to render alone, without the menu and sidebar?
If you allow the browser to choose how the PDF gets rendered, you're never going to be able to create a consistent experience for your users unless you are in a controlled desktop environment.
If you are looking for a consistent experience, use pdf.js to render the PDF in the browser.
If you are in a controlled environment and all of your users have a browser/viewer combination that will let the browser show PDF using the Adobe Reader plugin (as your screen shot shows) then you can use the "open parameters" at the end of the URL to control what gets shown. See the documentation at the link below.
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf
That said, don't count on that solution to work for very long. Most modern browsers are not allowing the viewer plugins to function anymore and the rest are moving in that direction.
Searching more into stack, try that:
https://stackoverflow.com/a/2105095/7741129
For more detailed informations:
http://blogs.adobe.com/pdfdevjunkie/web_designers_guide
I think it's better use some kind of JS stuff just in case of cross-browser issues, like related into first link. Solutions like https://pdfobject.com/ it's helpful to get the job done. Look:
PDFObject 2.0 detects browser support for inline/embedded PDFs. (In
case you were wondering, your browser supports embedded PDFs. You
lucky dog, you!)
If you're working with dynamic HTML, such as a single-page web app,
you may need to insert PDFs on-the-fly. However, PDF embedding is not
supported by certain browsers. If you insert markup without first
checking for PDF support, you could wind up with missing content or a
broken UI.
The PDFObject utility helps you avoid these situations by detecting
support for PDF embedding in the browser; if embedding is supported,
the PDF is embedded. If embedding is NOT supported by the browser, the
PDF will NOT be embedded.
By default, PDFObject 2.0 inserts a fallback link to the PDF when the
browser does not support inline PDFs. This ensures your users always
have access to your PDF, and is designed to help you write less code.
The fallback link can be customized, or the option can be disabled if
you prefer.
PDFObject 2.0 is npm-ready. Modern web apps use npm to manage packages
and dependencies. PDFObject 2.0 is registered with Node Package
Manager (npm) and can be loaded dynamically.
PDFObject also makes it easy to specify Adobe's proprietary "PDF Open
Parameters". (Be warned these parameters are only supported by Adobe
Reader, most PDF readers will ignore the parameters, including the
built-in PDF readers in Chrome, Internet Explorer, and Safari. Read
more below.)

WebGL in Chrome works second time but not first time

WebGL does not work in the following three scenarios:
(for the 'test webgl' site used get.webgl.org)
1 Start chrome, Google search for the 'test webgl' site, click on the link in the search result.
2 Go to the 'test webgl' site from a link in an email.
3 Start Chrome from a short cut or command prompt, "C:\Program Files\Google\Chrome\Application\chrome.exe" http://get.webgl.org/
This only happens when Chrome is not already running. In other words WebGL does not work when chrome starts up. However it does work if chrome is already running.
The best demonstration is scenario number 3, above. This starts chrome and goes to http://get.webgl.org/ and Webgl does not work. Then do exactly the same again but this time with chrome already open and Webgl works.
Would very much appreciate feedback or a solution, thanks.
Have also created various test sites in html, javascript and webgl, in order to find a work-around. For example if webgl is not available then allow the user to click on a link to open the page in a new tab, this does not work. However if the user opens a new tab then loads the page, webgl is detected and works.
In short, if a customer opens chrome and searches for your website (that has webgl content). Then clicks on the link, webgl will not work. It does not seem reasonable to then instruct the customer to open a new tab and then go to the same website a second time. So far have not been able to find a solution so that it just works without the customer having to fiddle around.
I realize that this may be a chrome issue as it does not occur in firefox, however am trying to find a javascript solution rather than waiting for chrome developers to fix it.
Thanks for any suggestions.
(Windows XP Pro, Chrome V36)
Hi Mack,
Thanks for your reply. The majority of visitors to my web site have XP and Chrome. I should imagine that this is true for quite a lot of peoples, websites.
Problem 1 The first fallback I had on my website was to detect if webgl is supported. If yes then continue as normal. If no then display a help page. This was simple and worked, however, google crawlers do not handle the javascript very well, therefore always index the webgl help page, rather than the home page.
Solution 1 Managed to fix this by having a popup box appear when webgl is not supported, giving the user a choice of whether to continue or go to the help page. The conditional code that processes the user response is arranged so that if the user is a google crawler then it simply 'falls through' and displays the html content of the home page, and not the help page.
There are lots of web sites that seem to have this same problem, including get.webgl.org, in other words, if you do a google search for a website, and that site contains webgl detection and fallback code, the search result always shows the fallback content, rather than the authors intended main content.
Problem 2 Now that I finally have the home page listed correctly by google, found that am still losing many customers, as they are starting chrome, searching google for my site 'suit yourself shirts', clicking the link in the result and being told incorrectly that webgl is not supported.
Am very interested in your solution but do not quite understand how it works. Have tried detection then page refresh or load the page in a new tab or display a link for the user to load the page, but none of these methods seem to work. Seems like quite a fundamental problem that would effect many webgl websites. Would be very greatfull if you could explain your suggestion a little further. Thanks for your help, kind regards - Gary

open pdf in iphone webapp

I am trying to open a pdf from my JQM webapp. I have tried iframes/embed/object, and none of those work on an iphone like they do on a desktop browser (scrolling, zooming, etc). I have settled with simply opening the pdf via a link Link. This works fine in the standard browser because the user can simply use the browser back button to navigate back to my app.
The issue that I am having, is that when a user saves the page to thier home screen and opens it using the chromeless safari browser, they no longer have the browser back button. I have tried adding target="_blank" to the link, but apparently JQM hijacks the link and prevents opening in a new page, and I have been unable to get the hacks to work.
I have also tried pdf.js, but I can't seem to even get that to work as my javascript knowledge is fairly limited, and the examples are pretty advanced. The only tutorial that I found used an old version which I couldn't get to work.
Are there any ways to bypass the JQM in openning a link in a new window (which would in turn open in the mobile safari rather than my chromeless web app), or are there any other suggestions for how to open a pdf from a webapp?
Just disable the default jQuery Mobile behaviour, by specifying data-ajax=false.
For example:
Link
See http://jquerymobile.com/demos/1.2.0/docs/pages/page-links.html
For my webApps I used https://docs.google.com/viewer to embed the pdf into my interface.
So, when I navigate the webApp by home screen icon, the app doesn't close when I open the pdf.
I met the same question: open pdf in webapp with html5.
I've tried several solutions: iframe、embed、pdf.js, but none of them is the best solution.
tips: iOS 9.x upper, open pdf with iframe only show the first page of the pdf file, and there will be a <img /> tag in the iframe body when you debug.
util now I still have this troublesome problem, anyone has solution please write your experience here.
Thank you.

View real HTML source in browser

I lookong for some IE or Firefox extension, which allows to browse html source, corresponding to data, shown in browser window right now.
I have large web application with alot of code, generated by JavaScript. I need to extract real HTML code, which I see in browser window right now (View source function shows only code loaded from server, not generated by JS). Most of JavaScript debuggers can show DOM model from browser memory, but I'am need something more friendly, like printable HTML. Does anybody know tools or plugins for IE (preferred) or Firefox?
Firefox's Web Developer extension will allow you to do this. After you install it, just select View Source->View Generated Source.
FireBug for Firefox will display the HTML corresponding to what you see in the browser window right now (that is including any modifications made in JavaScript).
You can use
javascript:document.write("<xmp>"+document.documentElement.innerHTML+"</xmp>");
in IE to view the generated source.
Paste the above and execute in address bar of IE.