We have been using Google Maps APi for 10 years via a WebBrowser control within our Windows Forms (.NET) software.
Customers tell us that it no longer works.
We understand that the .NET WebBrowser control uses Internet Explorer and cannot be changed.
We have already tried to insert the following tag, but it doesn't work.
<meta http-equiv = "X-UA-Compatible" content = "IE = edge" />
We also tried using the FEATURE_BROWSER_EMULATION registry keys, but it doesn't work.
https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)?redirectedfrom=MSDN#browser-emulation
Is there still a way to use the Google Maps API within a .NET Windows Form?
Thanks for any help
You can replace the browser control. I'm using CefSharp which is based on Chromium. Microsoft offers WebView2 which is based on its Edge Browser.
Both have a different interface than the old IE based web control and therefore require some changes to your code. How much you need to change depends on what else you do besides navigating to a Google Maps page.
Neither of the two is preinstalled on user's computers. You therefore need to add them to your application setup.
Related
I was trying to make a pc application that helps people more conveniently when they are using a browser(e.g Chrome, Firefox, Edge ...)
For example, the application shows the default browser and let user can choose another browser as default if they want to, and the app shows all windows that are currently opened; Overmore, when the user clicks a specific window then app will focus the window.
user can select default browser
user can see all windows categorized by browser type
So, my initial planning was using Election js; however, I've found that there is no way to control a browser from the Electron application since Node js cannot access the users' system(this thinking could be wrong since I have poor English😥)
After some research, I'm guessing C# can do that by using windows api. I've saw this post that saying by using DDE, we can get tabs urls.
But I'm wondering if C# can fully control a browser; for instance, create a new window, notice if music or video is playing in the tab, request to browser for getting favorites list.
If it cannot, how about requesting api to the browser from pc application?
You cannot fully control a browser. Internet Explorer was the only browser that had a documented and supported API to control, inspect and automate. Internet Explorer is dead so this is a dead end. The basic DDE control interface is also outdated.
Accessing favorites and the content of open tabs is limited because evil people would use such APIs to inject and spy. If you want to access the favorites you will have to write custom code for each browser.
Using the accessibility and UI automation APIs is the only reliable and supported way of interacting with modern browsers. SetWinEventHook can be used to detect window creation and primitive state changes. MSAA/UI Automation needs to be used to get more information from each browser window.
The thumbnail API and/or magnifier API can be used to get the preview image.
To open a new tab, execute a new process with the URL on the command line. Some per-browser customization might be required (-new-tab parameter etc).
Use IApplicationAssociationRegistration::QueryCurrentDefault to detect the default browser.
I'm making a Windows Form application that makes use of the browser tool. The browser does not connect to the internet and is only used to load local HTML content.
It's loading HTML CSS and JavaScript fine, but It cant seem to recognise jQuery. Is there a simple way for MVS to recognise jQuery as a script? All of the errors are related to it not understanding jQuery methods.
JQuery is supported form internet Explorer: 9+
when you use WebBrowserControl you get browser emulator ie 7,
change your regEdit key according with Use latest version of Internet Explorer in the webbrowser control
When I try to Open google map in my C# Application, I get this error:
You seem to be using an unsupported browser. Old browsers can put your
security at risk, are slow and don't work with newer Google Maps
features. To access Google Maps, you'll need to update to a modern
browser.
How can I upgrade my Browser there or How to get rid of this error?
Take a look at the approaches for upgrading IE in WebBrowser in this thread: use latest version of ie in webbrowser control
Alternatively, you can go for Chromium-based browser controls, to avoid compatibility issues. For example, here is a tutorial on embedding Google Maps using DotNetBrowser: Embed Google Maps In .NET Desktop Application.
I'm creating a web browser that has an automatic loading of specific web pages, but the problem is that the browser that i created using c# in visual studio wont load javascipt, the browser that i created only load html file, but don't support java script. can anyone help me on how to add some functionality on my custom web browser that will support javascript.
WebKit DotNet is the best port of WebKit powerful browser engine into DotNetFramework.
It has nice and easy tutorials and properties and methods to customize.
It has JavaScript activated by default.
http://webkitdotnet.sourceforge.net/ is the official website.
http://webkitdotnet.sourceforge.net/basics.php is where you can find the basic tutorial
Webbrowser control is really crappy. I'm assuming you're trying to scape some kind of website. For this use HttpWebRequest instead.
If you`re trying create your own webbrowser: don't, or use Webkit or Gecko instead.
In case you're using the webbrowser control you will have to enable JavaScript in your Internet Explorer settings, because the webbrowser control is the Internet Explorer or at least the engine of it. IE has local JavaScript disabled by default, so this could be your problem. As user #user3855678 said I would recommend using Webkit etc too.
My client WPF application needs to display an HTML page. I understand that the webbrowser control uses the version of IE that is installed on the box.
Is there a control to render HTML that can be totally embedded into my application so that it is not dependent on the version of IE, that the user has installed?
What would happed if a user is using IE6?
Thanks
You could always use WebKit .NET instead. It allows you to embed a WebKit browser in your .NET application without having to have extra software installed on the machine.
There is also geckofx if you would rather go the Mozilla Gecko route.