Hello,
I currently have an Ionic 4 application where I use Cordova. I know they are working through how best to resolve the issue of removing UIWebView in their ios platform and various plugins.
I am trying to understand how to determine that you do not have any references to UIWebView that Apple might eventually reject my app. From what I have read it does not matter if the UIWebView reference is a comment or not?
I just created a brand new blank Ionic 4 application. I then grep through the entire project and saw @ionic/core had references to UIWebView where a check is done and comments in the code:
isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent)
node_modules/@ionic/core/dist/ionic/swiper/swiper.bundle.js
node_modules/@ionic/core/dist/collection/components/slides/swiper/swiper.bundle.js
node_modules/@ionic/core/dist/esm/swiper.bundle-ccdaac54.js
node_modules/@ionic/core/dist/esm-es5/swiper.bundle-ccdaac54.js
node_modules/@ionic/core/dist/cjs/swiper.bundle-f80f3318.js
node_modules/@ionic/core/hydrate/ionic-hydrate.js
NOTE: Doing the grep returned a number of references to UIWebView besides the ones I listed above.
I then added cordova-ios@5.1.1 and followed the instructions here:
- Ensure you have a WKWebView plugin installed: either the official Apache one or Ionic’s. All Ionic starter apps automatically include
cordova-plugin-ionic-webview
. - Add
<preference name="WKWebViewOnly" value="true" />
to yourconfig.xml
file. - Run
cordova prepare ios
to apply the changes.
I then build a production ready version of the blank starter app.
ionic cordova build ios --prod --release
If I then open up the project in Xcode and search through it I see 120 references to UIWebView in 20 files.
If I build and .ipa file and unzip it (i.e. change .ipa to .zip and unzip) followed by doing a grep through the Payload folder it returns that the app has references to UIWebView:
>> grep -lr "UIWebView" *
>> MyApp.app/MyApp
I am at a loss as to how to remove reference to UIWebView in my starter application and my current production application (this has additional cordova plugins - inappbrowser).
Any insight on how to remove references to UIWebView in applications and determine that you have to the point that it will satisfy Apple would be greatly appreciated.