我昨天在Xcode 9.0(9A235)的iPhone X模拟器上测试了我的基于Cordova的应用程序,它看起来不太好.首先,不是填满整个屏幕区域,而是在app内容的上方和下方有一个黑色区域.更糟糕的是,应用内容和黑色之间是两个白条.
cordova-plugin-wkwebview-engine使用WKWebView(不是UIWebView)添加所以Cordova渲染可以修复白条.我的应用程序没有从UIWebView迁移到WKWebView,因为在使用cordova-plugin-wkwebview-engine从Inapp购买托管内容下载的图像到HTML5画布时出现性能和内存泄漏问题(file://由于WKWebView中的安全限制,Webview无法直接访问)必须通过加载图像数据cordova-plugin-file.
这些屏幕截图显示了一个在<body> 上设置了蓝色背景的测试应用.在UIWebView的上方和下方,您可以看到白条,但不能看到WKWebView:

与充满整个屏幕区域的原生应用相比,Cordova Webviews都展示了黑色区域:

我打算制作一个原生的(意思是; 不在浏览器中)移动应用程序.由于我是网络开发人员,我很难决定是否应该尝试使用Phonegap或者只是在java或objective-c中构建本机应用程序.
应用程序要求很简单.GPS/wifi位置,Facebook集成,我想我需要一个数据库来处理一些特定于Facebook的朋友关系.就像游戏中的高分一样 - 比如那样的东西.
我是一名网络开发人员,不知道java或objective-c.我之前从未使用过Phonegap,所以我不知道它是否能够满足我的要求.
所以我的问题如下; 我可以将Phonegap用于我的应用程序,还是需要深入学习新语言?
我一直在努力让Cordova工作并在我的iPhone上运行.我按照下面的命令,但在构建时看到以下错误:
cordova create myApp org.apache.cordova.myApp myApp
cd myApp
cordova platform add ios
cordova build ios
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Building project: /Users/ben/Desktop/myTest/platforms/ios/myTest.xcworkspace
Configuration: Debug
Platform: device
User defaults from command line:
IDEArchivePathOverride = /Users/ben/Desktop/myTest/platforms/ios/myTest.xcarchive
Build settings from command line:
CONFIGURATION_BUILD_DIR = /Users/ben/Desktop/myTest/platforms/ios/build/device
SHARED_PRECOMPS_DIR = /Users/ben/Desktop/myTest/platforms/ios/build/sharedpch
Build settings from configuration file '/Users/ben/Desktop/myTest/platforms/ios/cordova/build-debug.xcconfig':
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
CODE_SIGN_ENTITLEMENTS = $(PROJECT_DIR)/$(PROJECT_NAME)/Entitlements-$(CONFIGURATION).plist
CODE_SIGN_IDENTITY = iPhone Developer
ENABLE_BITCODE = NO
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
OTHER_LDFLAGS = -ObjC
SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h
error: archive not found …Run Code Online (Sandbox Code Playgroud) 我有点害怕问这个问题,因为这个问题对我来说似乎很巨大,但我看不到有人对此感到惊慌。我有点害怕听起来很疯狂,但是我会去做的:
正如我们在Apple的Submissions Update上所读到的:
从Xcode 11开始,Xcode不再包含Application Loader。有关如何使用Xcode将应用程序上传到App Store Connect的详细信息,请参阅Xcode帮助。
使用Phonegap构建服务的人员和组织在知道自己无权访问Xcode项目文件的情况下询问自己如何使IPA联机是合法的。
Apple为我们提供了一个称为“ 档案管理器”的新工具,但正如我们在文档上所读到的:
在档案管理器中,选择要上传的档案,然后单击“分发应用程序”。
好吧,我的档案在哪里?IPA是否被视为档案?如何将我的IPA集成到此软件中?
也许我还没有找到合适的解决方案,但是目前,如果没有Application Loader的替代工具,我特别担心Phonegap构建的未来。
那么,您是否甚至遇到过相同的问题,并且找到了解决方案?(向科尔多瓦的迁移除外)
我知道,由于UIWebView的贬值以及Cordova与WKWebView的兼容性低,混合应用程序的使用寿命并不长,但是我不敢相信Apple会决定在没有警告的情况下终止Phonegap构建。和往常一样,Phonegap的团队也不是很健谈。
好了,可以使用以下命令来传输您的ipa,但是它能正常工作是因为我使用的是旧版本的Xcode(10),所以Xcode 11发布时将不推荐使用它吗?
xcrun altool --upload-app --type ios --file "path/to/application.ipa" --username "YOUR_ITMC_USER" --password "YOUR_ITMC_PASSWORD"
Run Code Online (Sandbox Code Playgroud) 我在Cordova和AndroidStudio工作,以创建Android/iOS应用程序.一切都工作正常,直到我昨天将我的Cordova更新为8.我还将Node更新到最新版本.当我创建Cordova项目并添加Android平台时.它产生一个完全不同的目录结构.我无法看到assets,res以及src项目平台目录中的文件夹D:\testApp1\platforms\android.更重要的是,上面的目录丢失了AndroidManifest.xml,这导致admob插件无法添加.
这是添加插件时出现的错误:
无法安装'cordova-plugin-admobpro':错误:ENOENT:没有这样的文件或目录,在Object.fs.openSync上打开'D:\ Projects\testApp1\platforms\android\AndroidManifest.xml'(fs.js:646 :18)在Object.parseElementtreeSync(D:\ Projects\testApp1\platforms\android\cordova \node_modules\cordova-common\src\util\xml-helpers)的Object.fs.readFileSync(fs.js:551:33)处. js:180:27)在AndroidProject.getPackageName(D:\ Projects\testApp1\platforms\android\cordova)的新AndroidManifest(D:\ Projects\testApp1\platforms\android\cordova\lib\AndroidManifest.js:29:20)\lib\AndroidProject.js:99:12)在handleInstall(C:\ Users\Rao\AppData\Roaming)的Api.addPlugin(D:\ Projects\testApp1\platforms\android\cordova\Api.js:223:57)位于C:\ Users\Rao\AppData\Roaming \npm \node_modules\cordova \node_modules\cordova-lib\plugman\install.js:357:28 at _fulfilled(C:\ Users\Rao\AppData\Roaming \npm \node_modules\cordova \node_modules\cordova-lib \node_ modules\q\q.js:787:54)at self.promiseDispatch.done(C:\ Users\Rao\AppData\Roaming \npm \node_modules\cordova \node_modules\cordova-lib \node_modules\q\q.js: 816:30)
有人可以帮忙吗?
我想开始研究Phonegap以部署iOS和Android应用程序.我想知道除了基本的"Hello"之外是否有任何好的Phonegap教程.
我正在研究Cordova应用程序.我在哪里连接到实时传感器并从传感器读取一些数据.问题是当我滚动视图时数据被加扰.这适用于Android但不适用于iOS.
这是我的代码片段.
<div id="right_col">
<button onclick="clearReceivedData()">Clear Received Data</button>
<br>
<div id="receivedData"></div>
</div>
function dataReceivedCallback(data) {
document.getElementById("receivedData").innerHTML += data.value1 + ": ";
document.getElementById("receivedData").innerHTML += data.value2 + ":";
document.getElementById("receivedData").innerHTML += data.value3 + "<br>";
}
Run Code Online (Sandbox Code Playgroud)
dataReceivedCallback将从传感器接收的每个数据调用.此回调也会阻塞,直到滚动完成.如何在滚动UI时更新UI.
我正在创建一个从本地CouchDB中提取数据的应用程序.但是,当我将远程数据库URL从localhost:5984更改为我的ip:5984以便我可以从我的移动设备进行测试时,从远程设备同步时出现以下错误
{"status":0,"name":"unknown","message":"getCheckpoint rejected with ","result":{"ok":false,"start_time":"2017-08-17T11:14:48.510Z","docs_read":0,"docs_written":0,"doc_write_failures":0,"errors":[],"status":"aborting","end_time":"2017-08-17T11:14:56.314Z","last_seq":0}}
Run Code Online (Sandbox Code Playgroud)
我已经设置了CORS,将我的httpd绑定地址设置为0.0.0.0,我的内容安全策略设置为允许几乎所有内容,我觉得有点失去了如何解决这个问题,因为谷歌搜索只打了我死路一条.谢谢你的帮助.
当我尝试远程同步到任何数据库时,我在服务器日志中得到以下内容:
2017-08-22T10:59:12.194000Z couchdb@localhost <0.52.0> -------- alarm_handler: {clear,system_memory_high_watermark}
[info] 2017-08-22T10:59:26.074000Z couchdb@localhost <0.26330.0> -------- Opening index for db: shards/80000000-9fffffff/_replicator.1503391828 idx: _design/_replicator sig: "3e823c2a4383ac0c18d4e574135a5b08"
Run Code Online (Sandbox Code Playgroud)
编辑:通过我一直在尝试的所有更改和修复,重新创建系统数据库,用户,重新安装以及客户端控制台错误稍有改变的各种其他内容.CouchDB日志是相同的.这是最新的错误
{"code":"ETIMEDOUT","status":0,"result":{"ok":false,"start_time":"2017-09-04T09:19:26.309Z","docs_read":0,"docs_written":0,"doc_write_failures":0,"errors":[],"status":"aborting","end_time":"2017-09-04T09:19:36.326Z","last_seq":0}}
Run Code Online (Sandbox Code Playgroud) 在iOS上阅读带有资产的绝对路径URL的PhoneGap后,我真的很困惑, 并且有几个问题:
我正在使用cordova文件插件 - cordova文件插件
我实际上是从文本文件中读取文件.以下是我的代码
document.addEventListener("deviceready", function () {
window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "sameple.txt", gotFile, fail);
}, true);
function gotFile(file) {
file.file(function (file) {
var reader = new FileReader();
reader.onloadend = function (evt) {
console.log(this.result);
}
reader.readAsText(file);
}, fail());
}
function fail(e) {
console.info("FileSystem Error : " + e);
}
Run Code Online (Sandbox Code Playgroud)
因此每当我运行此代码时,我都会收到以下错误
deviceready has not fired after 5 seconds.
Channel not fired: onPluginsReady
Channel not fired: onCordovaReady
Could not get Cordova FileSystem: Error: deviceready has not fired after 5 seconds.
"Could not get Cordova …Run Code Online (Sandbox Code Playgroud)