Mobile Safari uses Webkit1/Webkit2? - ios

I am researching a bit about Mobile safari and have searched the web for any information about the process model being used.
Webkit1 was a single process framework and with Webkit2 the chromium style multi-process model was introduced in Webkit. But no where is there a mention of Mobile Safari using the same.
Is there anyway to detect which Webkit(1/2) is being used in the latest Mobile Safari? Is there any changelog of the same?

I'm not sure in my answer, but there is a private framework called WebKit2.framework in iOS7. You can check it here.
So, it's quite possible, that Safari uses WebKit2.

Related

Why is QWebEngineView not ready for mobie apps?

My apps will use some widgets to show web pages. But QTextBrowser just support HTML 4.1, and QtWebView just support QML, and QWebEngineView just spoport Linux/Unix/MacOSX/Windows. Why does QWebEngineView not support Android and IOS? It is the reason of Chromium donot support Android and IOS ?
Current mobie apps often use WebView to show web pages, so we can't wait for QWebEngineView. What is the official idea and plan?
It is the reason of Chromium donot support Android and IOS ?
iOS
Apple does not allow Chromium on iOS.
See rule #2.5.6 at https://developer.apple.com/app-store/review/guidelines/#software-requirements -- Apps that browse the web must use the appropriate WebKit framework and WebKit Javascript.
Android
It is technically possible to add support for Qt WebEngine on Android, but this support does not exist at the moment.
See http://lists.qt-project.org/pipermail/development/2013-September/013169.html for the reasons.
This is my interpretation:
It requires a lot of work. The Qt Company's resources are being spent in other areas.
An Android app that uses QWebEngineView will need to include the Qt WebEngine library, which is very large (~30 MB?). This is not desirable.

webRTC-enabled browser for iOS?

Preface: there are questions (some good, some bad) already in existance on StackOverflow about webRTC support on various browsers and platforms, including iOS. However I couldn't find anything definitive that was more recent than ~2012, and this is a rapidly-changing field.
I'm working on a browser-based webapp that uses webRTC for minimal-latency peer-to-peer data transfer (not for audio/video, unlike most applications it would seem - all I need is DataChannel).
I hit a snag when I started testing the data-transfer part of the project and discovered that iOS devices still don't natively support this in their built-in browsers (despite some recent rumors).
Bowser is a free open-source browser App for iOS that purports to support webRTC on iOS. The problem is that when I try to open the app, it simply crashes and closes. I've tested this on an iPhone 5 and 5s. Googling has failed to turn up alternatives - even Chrome for iOS doesn't currently support webRTC it seems.
My questions:
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
3) What strategies have other people used to work around this limitation?
As of iOS 11, WebRTC is now supported in Safari: https://developer.apple.com/library/archive/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_0.html#//apple_ref/doc/uid/TP40014305-CH13-SW1
Check out crosswalk project ( https://crosswalk-project.org )
This Provides runtime of Chromium engine for native support in older devices.
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
Answer:
There is a Browser called Bowser that supports webRTC.
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
Answer:
It's not crashing as of now.But I couldn't successfully test with anything so far.I have raised an issue about it
3) What strategies have other people used to work around this limitation?
Answer:
Apple is yet to support WebRTC in Webkit so as of now the only way would be develop a native or Hybrid app that would support the unsupported WebRTC APIs.
You can develop a hybrid app powered by OpenWebRTC or cordova-plugin-iosrtc

iOS PhoneGap app using WebGL

Which is the WebView of a PhoneGap app, is the Safari mobile or desktop one?
Is it possible to use WebGL in PhoneGap apps? If not which they work around to use them being able to submit the app to the Apple Store and Android Store
Will I be able to submit to Apple Store a PhoneGap app that uses WebGL?
UPDATE:
iOS 8 brought WebGL support on the UIWebView and WKWebView, so if you don't want to support previous versions you can use it without CocoonJS
See more details on ludei's website
OLD:
If you want to create HTML5 apps with WebGL for iOS and android, try CocoonJS
Right now it's the only way to create WebGL apps that run on iOS and android
I just figured out your issues in two points.They are-
phonegap build app links won't open in safari. For More details Please check HERE
Neither the iOS nor Android browsers support WebGL so it is pretty much a non-starter in PhoneGap.
Apple are clearly working towards supporting WebGL in a more general sense, as can be seen in their support for it in iAds.
It’s possible to take advantage of WebGL using standard embedded web views ( using private APIs).
check HERE too fro browser support.
I personally recommend Ejecta for it being open source:
https://github.com/phoboslab/Ejecta
The Android port doesn't seem widely active, but the main ios port seems well maintained, supporting WebGl.
The latest Android versions support webGL directly - if using older Android versions, Crosswalk can also be used along with phonegap to utilize webgl support.
https://crosswalk-project.org/

UIWebView and Safari comparison

Does UIWebView use the same JavaScript engine as Mobile Safari?
Also, does UIWebView support all HTML5 features like Mobile Safari does? I am specifically concerned about Web SQL and Web Workers
If I have an app which is written purely in HTML and JS, should I wrap it up in a UIWebView or should I have it open in Mobile Safari
Are pure HTML and JS apps accepted on the Apple store?
Does UIWebView use the same JavaScript engine as Mobile Safari?
UIWebView does not have the Nitro Javascript engine, so it executes JS slower than Mobile Safari. So it's not the same.
Also, does UIWebView support all HTML5 features like Mobile Safari does? I am specifically concerned about Web SQL and Web Workers
Not sure about this one. Probably not. At least UIWebView is a bit more strict than Safari on certain features. Example: when setting a width/height style through JS, you need to add 'px' behind the number, while Mobile Safari does not require that.
If I have an app which is written purely in HTML and JS, should I wrap it up in a UIWebView or should I have it open in Mobile Safari
If you want to release the app on the App Store, you will have to wrap it. If not, you don't really have to.
Are pure HTML and JS apps accepted on the Apple store?
If you wrap it, yes. But it has some limitations, as James Webster wrote.
See this question here on SO for more information on the differences between UIWebView and Safari.
I can only really provide insight to part 4 of your question with these snippets:
There are a few guidelines in the App Store Review guidelines (requires login) that mention "web"
2.12 Apps that are not very useful, are simply web sites bundled as apps, or do not provide any lasting entertainment value may be rejected
2.17 Apps that browse the web must use the iOS WebKit framework and WebKit Javascript
12.3 Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected

IOS Safari support plugins?

I'm currently working on ipad IOS Safari. Thinking of adding some plugins to the application. but found some article saying that IOS Safari doesn't support plugins. Any expert know how true is the statement? Thanks
Safari, like all iOS apps, does not support plug-ins or any other form of customization. Your only option is to create an app with a UIWebView. Quite a few browser apps can be found in the App Store.
iOS 9 update: Safari still does not support plug-ins; however, it is now possible to build an app that blocks specific content via a JSON file. Content blocking rules only affect the Safari app and the new SFSafariViewController (UIWebView and WKWebView instances are unaffected).
The fact that you need to jailbreak it to use them actually proves that Apple is not supporting the use of plugins.
As of iOS 9, browser plugins are supported (as content blockers).
It DOES support plug-ins, you have to be Jailbroken to add any though. Install iFile from cydia then in iFile go to /System/Library/Internet Plug-Ins
The QuickTime Plugin is in there already, which proves that plugins are supported
And you can customize apps if your jailbroken

Resources