【发布时间】:2020-08-29 19:08:07
【问题描述】:
自 4 月 30 日起,Apple 不允许使用低于 13 的 SDK 构建应用程序。我曾经使用 Phonegap 构建 (https://build.phonegap.com/) 构建我的应用程序,但它使用 SDK 12。现在我尝试使用 Xcode 构建我的应用程序。
我使用 Phonegap 构建并使用测试分发配置文件在我的手机上安装此构建的每个构建都像一个魅力,但是当我使用与我的 Phonegap 构建相同的 config.xml 构建应用程序时,inappbrowser 不是不再工作了。
我认为这与自 SKD 13 起被贬低的 UIWebView 有关。因此我使用 Cordova 提供的教程来实现 WkWebview。
我已尝试删除除 wkwebview-engine 和 inappbrowser 之外的所有插件,但这没有任何效果。
- 科尔多瓦 CLI 9.0.0
- inappbrowser 3.2.0
- wkwebview-engine 1.2.1
- ios平台新增5.1.1
我的 config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.app.name" version="0.2.13" xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>appname</name>
<description>
</description>
<author email="mymail" href="mywebsite">
my name
</author>
<content src="dist/index.html"/>
<platform name="ios"/>
<platform name="android"/>
<feature name="http://api.phonegap.com/1.0/network"/>
<preference name="permissions" value="none"/>
<preference name="phonegap-version" value="cli-9.0.0"/>
<preference name="orientation" value="portrait"/>
<preference name="target-device" value="universal"/>
<preference name="prerendered-icon" value="true"/>
<preference name="detect-data-types" value="false"/>
<preference name="exit-on-suspend" value="false"/>
<preference name="deployment-target" value="7.0"/>
<preference name="webviewbounce" value="false"/>
<preference name="stay-in-webview" value="false"/>
<preference name="ios-statusbarstyle" value="black-opaque"/>
<preference name="ShowSplashScreenSpinner" value="true"/>
<preference name="AutoHideSplashScreen" value="true"/>
<preference name="android-minSdkVersion" value="19"/>
<preference name="android-targetSdkVersion" value="28"/>
<preference name="android-installLocation" value="auto"/>
<preference name="android-windowSoftInputMode" value="stateVisible|adjustResize"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="ShowSplashScreen" value="true"/>
<preference name="FadeSplashScreen" value="false"/>
<preference name="SplashScreenDelay" value="2000"/>
<preference name="FadeSplashScreenDuration" value="0"/>
<platform name="android">
<preference name="fullscreen" value="false"/>
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true"/>
</edit-config>
</platform>
<platform name="ios">
<preference name="fullscreen" value="false"/>
</platform>
<access origin="*"/>
<allow-navigation href="*"/>
<allow-navigation href="*://*youtube.com"/>
<access origin="mailto:*" launch-external="true"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*" launch-external="yes"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
<allow-navigation href="mailto:*" launch-external="yes"/>
</platform>
<feature name="TouchID">
<param name="ios-package" value="TouchID"/>
</feature>
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</platform>
<plugin name="cordova-plugin-inappbrowser" spec="3.2.0" />
<plugin name="cordova-plugin-wkwebview-engine" spec="1.2.1" />
</widget>
在测试之前,我这样做是为了确保所有插件都是全新安装的:
rm -rf package-lock.json package.json platforms plugins/* node_modules
cordova platform add ios@5.1.1
构建完成后,我在 xcode 控制台中只收到以下信息:
2020-05-13 16:23:33.805959+0200 App[7410:670156] [Accessibility] ****************** Loading GAX Client Bundle ****************
2020-05-13 16:23:33.996820+0200 App[7410:670156] Apache Cordova native platform version 5.1.1 is starting.
2020-05-13 16:23:33.998789+0200 App[7410:670156] Multi-tasking -> Device: YES, App: YES
2020-05-13 16:23:34.016143+0200 App[7410:670156]
Started backup to iCloud! Please be careful.
Your application might be rejected by Apple if you store too much data.
For more information please read "iOS Data Storage Guidelines" at:
https://developer.apple.com/icloud/documentation/data-storage/
To disable web storage backup to iCloud, set the BackupWebStorage preference to "local" in the Cordova config.xml file
2020-05-13 16:23:34.282716+0200 App[7410:670156] CDVWKWebViewEngine will reload WKWebView if required on resume
2020-05-13 16:23:34.283306+0200 App[7410:670156] Using WKWebView
2020-05-13 16:23:34.284438+0200 App[7410:670156] [CDVTimer][console] 0.174999ms
2020-05-13 16:23:34.285355+0200 App[7410:670156] [CDVTimer][handleopenurl] 0.338078ms
2020-05-13 16:23:34.290426+0200 App[7410:670156] Unlimited access to network resources
2020-05-13 16:23:34.291285+0200 App[7410:670156] [CDVTimer][intentandnavigationfilter] 5.457997ms
2020-05-13 16:23:34.292067+0200 App[7410:670156] [CDVTimer][gesturehandler] 0.302076ms
2020-05-13 16:23:34.292696+0200 App[7410:670156] [CDVTimer][TotalPluginStartup] 8.646965ms
我没有解决这个问题的想法。也许有人有一些新鲜的外观,所以我可以尝试一些新事物。
【问题讨论】:
-
很抱歉忘记显示我如何调用 inappbrowser
<v-list-item v-bind:onclick="'window.cordova.InAppBrowser.open(\''+generalSettings[facebook]+'\',\'_blank\',\'usewkwebview=yes,location=no,hideurlbar=true,toolbarcolor=#78A13F,closebuttoncolor=#ffffff,closebuttoncaption='+$t('inappbrowser.close')+'\'); return false;'">
标签: ios xcode cordova inappbrowser