Microsoft Edge for iOS and Android: What developers need to know
As you may have read on the Windows Experience blog, Joe Belfiore announced today that Microsoft Edge is coming to iOS and Android, bringing the best browsing experience on Windows 10 to more pockets around the world.
Joe’s post has everything you need to know about availability and features of the preview app experiences. Here, we want to talk a bit about these new apps from a web developer point of view.
Getting the preview apps
As any developer can appreciate, testing and learning is a crucial part of launching a new product. It’s something we don’t take lightly. As such, we are beginning with a limited preview to get feedback and learn.
The iOS app is available today for a limited audience in Apple’s TestFlight system, and the Android app will be available shortly via Android’s Play Store Early Access. Consistent with our engineering approach for Windows 10, we’ll be listening to feedback throughout our preview and will update the apps regularly with fixes and new features. When our telemetry (and feedback) shows that the quality is great, we’ll make the apps available for public download – our goal is to do so later this year.
Engines and Platforms
One of the most common web developer questions we’re expecting is – what engine are you using? Did you port EdgeHTML to iOS and Android?
Our choices are directly related to how we think about the goals of the EdgeHTML engine itself on Windows 10.
A web platform is a complex piece of technology that in many respects duplicates aspects of an entire operating system in a single app. Part of our strategy with EdgeHTML is to build an engine that, instead of replicating (and, in some senses, competing with) the underlying platform, integrates and works with it to deliver the best possible security, accessibility, battery life, interactivity, just pure raw performance on that platform. We are proud of the work we’ve done with EdgeHTML on Windows 10, all while driving the web forward with new capabilities and supporting interoperable standards. We are fully committed to continuing to do so into the future, across the full spectrum of Windows 10 platforms and form factors.
Taken in that light, it should then not be a surprise that we have chosen to adopt the core web platform technologies on each of the app platforms we are announcing today.
On iOS, we are using the WebKit engine, as provided by iOS in the WKWebView control. That means that from a compatibility perspective, Microsoft Edge for iOS should match the version of Safari that is currently available for iOS.
On Android, we are using the Blink rendering engine from the Chromium browser project. This approach gives us more control and better performance than using the Android WebView control, but means that we are shipping our own copy of the rendering engine in the app. Much like other Android browsers based on Chromium, we expect to keep up with Chromium releases. You can expect that, from a compatibility perspective, Microsoft Edge for Android will match the version of Chrome that is currently available for Android.
User Agent String
A highly related question is – how can I detect Microsoft Edge from my site?
In most cases, you shouldn’t need to do anything different for your site to just work in Microsoft Edge for iOS and Android. But, we know that in some cases (for example, for analytics, or for choosing the right text in an onscreen instruction related to the browser experience), you might want to know that the user is using Microsoft Edge on an iOS or Android device.
Right now, the apps are using User Agent strings that exactly match the strings used by the primary browser on that platform. Very soon, we will update the preview apps to include a new token in their user-agent strings, as below:
Microsoft Edge for iOS user agent string
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89 Safari/603.2.4 EdgiOS/184.108.40.206
Microsoft Edge for Android user agent string
Mozilla/5.0 (Linux; Android 8.0; Pixel XL Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.0 Mobile Safari/537.36 EdgA/220.127.116.11
A few notes:
- The app/OS identifier is chosen so that it does not contain the string “Edge.” This is to avoid triggering any existing UA detection logic that might accidentally decide that these browsers are Microsoft Edge for Windows 10, resulting in a desktop site or something equally confusing.
- The version number “41” is the app version number aligned across all current versions of Microsoft Edge (note that for simplicity, the app version number is not currently exposed in Microsoft Edge for PC; only the EdgeHTML engine version number is exposed).
- The sub-version number is a platform-specific version number that internal version number of the app on that platform.
We are excited to be releasing these preview apps, bringing the Microsoft Edge ecosystem to the devices in your pockets with the features you expect, and plenty of unique new features to come.
Stay tuned to this blog (or follow us on Twitter) for more updates on Microsoft Edge, and be sure to try out the preview apps for yourself and let us know what you think. Help us build the best browsers we possibly can!
You can find out more about the preview apps on the preview site.
– Sean Lyndersay, Program Manager, Microsoft Edge