Akshat Akshat - 1 year ago 113
iOS Question

Conditional subclassing based on iOS version

This may be slightly odd to ask, is there a way to conditionally subclass based on iOS version, essentially:

if(iOS version >= 9) {
@interface CDVWKWebViewEngine : CDVPlugin <CDVWebViewEngineProtocol, WKScriptMessageHandler, WKNavigationDelegate>
} else if(iOS version = 8) {
@interface CDVWKWebViewEngine : CDVPlugin <WKScriptMessageHandler, WKNavigationDelegate>

I have the iOS Cordova WkWebView Engine plugin and would like to fall back to the UIWebView under iOS 8 (ignore the plugin on iOS 8).

I've found it rather tricky to make the use of this plugin conditional as it is so deeply entrenched into the project once it subclasses the UIWebView default plugin.

Answer Source

There are preprocessor macros defined for different versions

// code to compile for iOS 9 or greater
// code to compile for les than iOS 9
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download