【发布时间】:2016-07-24 01:54:01
【问题描述】:
我的问题是,我是否可以使用 Cordova 获得可运行的 android 应用程序的 ios 版本?我试过添加这样的平台:
//I add the platform
cordova platform add ios
//I compile the project
cordova build ios
然后我尝试运行它,但效果不佳,它加载一个空白屏幕,该项目说它正在运行。我认为这是一个配置问题。自动创建的 config.xml(ios) 如下所示:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.project.appios" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="DisallowOverscroll" value="false" />
<preference name="EnableViewportScale" value="false" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="SuppressesLongPressGesture" value="false" />
<preference name="Suppresses3DTouchGesture" value="false" />
<preference name="GapBetweenPages" value="0" />
<preference name="PageLength" value="0" />
<preference name="PaginationBreakingMode" value="page" />
<preference name="PaginationMode" value="unpaginated" />
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
<feature name="HandleOpenUrl">
<param name="ios-package" value="CDVHandleOpenURL" />
<param name="onload" value="true" />
</feature>
<feature name="IntentAndNavigationFilter">
<param name="ios-package" value="CDVIntentAndNavigationFilter" />
<param name="onload" value="true" />
</feature>
<feature name="GestureHandler">
<param name="ios-package" value="CDVGestureHandler" />
<param name="onload" value="true" />
</feature>
<feature name="Camera">
<param name="ios-package" value="CDVCamera" />
</feature>
<preference name="CameraUsesGeolocation" value="false" />
<feature name="File">
<param name="ios-package" value="CDVFile" />
<param name="onload" value="true" />
</feature>
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<feature name="Media">
<param name="ios-package" value="CDVSound" />
</feature>
<feature name="Capture">
<param name="ios-package" value="CDVCapture" />
</feature>
<feature name="Contacts">
<param name="ios-package" value="CDVContacts" />
</feature>
<feature name="FileTransfer">
<param name="ios-package" value="CDVFileTransfer" />
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<content src="index.html" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
</widget>
根 config.xml 如下所示:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.medife.appios" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>*****</name>
<description>
******************
</description>
<author email="*******************************">
*********
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="5000" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="orientation" value="portrait" />
<platform name="android">
<!-- you can use any density that exists in the Android project -->
<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>
<platform name="ios">
<!-- images are determined by width and height. The following are supported -->
<splash src="res/screen/ios/default-568-iphone.png" width="640" height="1136"/>
<splash src="res/screen/ios/default-667-iphone.png" width="750" height="1334"/>
<splash src="res/screen/ios/default-736-iphone.png" width="1242" height="2208"/>
</platform>
<icon src="res/logo/logo.png" />
</widget>
我已删除作者、描述和电子邮件...
更新:我注意到,在 XCode 控制台中,缺少一些插件,因此我正在检查有关此问题的其他 stackoverflow 答案。我认为是因为应用程序的后端是用旧版本的 iOS 制作的。
提前致谢!
【问题讨论】:
-
可能你只需要在使用 ios 配置时执行
Cordova Prepare。 -
@Edu,您使用的是哪个版本的 iOS?任何错误跟踪?您是否在您的应用中进行 ajax 调用来呈现页面?
-
@Gandhi 我正在使用最新版本的 iOS,至少我已将其更新到最新版本。我没有错误跟踪,但查找 jquery 错误更加困难,因为我无法在 iOS 中使用谷歌开发人员工具。我在进行 Ajax 调用,但不在渲染中。我也提到过它,但它在 Android 上运行得非常好。我没有提到但可能有帮助的是我还没有设置启动画面。
-
@Edu,您可以使用 Safari 的开发菜单下的 Web Inspector 中的调试来调试 iOS 中的问题以缩小问题范围。
-
@Gandhi 我会试一试,但我认为它不是 jquery 问题,因为它在 Android 上运行良好,我几乎可以肯定它是 Config.xml 问题。但我会试试的。编辑:我试过了,空白控制台,没有错误,没有启动,没有控制台日志,什么都没有,所以它没有启动 jquery ......很奇怪......