对于大学项目,我的小组计划为Android制作云消息应用程序.最初,我们通过研究和使用Ionic Framework和Phonegap来开始开发,以创建一个混合应用程序.
根据我们迄今为止所阅读和学到的内容,我们所理解的是,混合应用程序开发允许我们使用Web技术(HTML,CSS Javascript)进行编码,我们非常熟悉它,而不是构建Native应用程序.它还具有在多个平台上运行的优点,只需很小的调整.
但是当我们向前迈进时,我们得到了许多同事和现场人员的一些奇怪反馈,这些反馈都指向了一件事; 对混合应用程序的普遍不信任和怀疑.
最终我们决定去寻找原生应用,因为这个反馈和其他原因,但它总是困扰我们为什么人们有这种感觉.
我在Cordova for Android中创建了一个应用程序,我正在使用Chrome DevTools进行调试.但每次我使用inspect元素我的应用程序崩溃而不显示任何错误.
如果我只是启动DevTools和我的应用程序,它将不会发生,它只会在我使用inspect元素时发生.我还没有太多代码,只有一个索引文件加载所有JavaScript和CSS文件,并显示我的加载页面的一些图像.
我的控制台中也没有出现任何错误.
Chrome版本57.0.2987.133
三星Galaxy Edge 7
Android 7.0
Cordova 6.5.0
更新:
在较新版本的Chrome(58.0.3029.96)中测试过,问题仍然存在.
更新:
我使用的是真实设备,但在通过Android Studio使用模拟设备时也存在问题.
android google-chrome google-chrome-devtools cordova phonegap
获取"没有为模拟器指定目标.部署到未定义的模拟器设备类型"com.apple.CoreSimulator.SimDeviceType.undefined"无法找到." 使用XCode 9/iOS 11运行Phonegap项目时出错.有没有人有解决方法?
我在https://build.phonegap.com/apps/portal evrey 的帮助下构建 apk 文件我构建调试或发布 apk 文件的名称是:
______debug.apk 或者 ______release.apk
我想将发行版 apk 的名称更改为更重要的名称,例如MyProject-v2.apk.
知道如何在构建时更改 apk 文件的名称吗?
目前我正在使用以下方法,它提供文件的详细信息,但不是实际的对象,它似乎是我们从javascript/jQuery中得到的.有没有人知道如何使用cordova和javascript从移动ios/android文件系统从文件URI /本机URI获取文件对象?
以下是我目前使用的代码段..
window.resolveLocalFileSystemURL(
filepath,
function(fileEntry) {
fileEntry.file(
function(file) {
var reader = new FileReader();
reader.onloadend = function() {
var imgBlob = new Blob([this.result], {type: "image/jpeg"});
var uploadedFile = imgBlob;
uploadedFile.name = file.name;
alert("Importing Asset from Camera.. " + uploadedFile.name);
alert(uploadedFile.type);
alert(uploadedFile.size);
importAsset(uploadedFile);
};
reader.readAsArrayBuffer(file);
},
function(error) { alert("Error in fileEntry.file():" + error) })
},
function(error) { alert("Error in window.resolveLocalFileSystemURL():" + error) }
);
Run Code Online (Sandbox Code Playgroud)
注意:FileTransfer.upload()在我的情况下不起作用.
我在使用Append图像文件获取表格数据后使用上面的代码- Cordova/Angular在完成#SO的现有问答后
如果我使用类似的东西$('button').click(function() { alert('hi'); },我将以下内容添加到我的<head>:
<meta name="viewport" content="user-scalable=no, width=device-width">
Run Code Online (Sandbox Code Playgroud)
..并且我将其作为iOS 11上的普通移动网站运行,没有延迟(=>预期行为)。
但是,如果我在iOS上已编译的Cordova混合应用程序中运行完全相同的代码,则延迟又回来了!(=>不好)
我是否必须再次使用fastclick.js或其他解决方法(例如2013)?那其他的Cordova开发人员呢?您遇到同样的问题吗?
PS:在Android上运行正常。
PPS:touch-action: manipulation;不幸的是,添加CSS并没有帮助
我想将我的Android应用程序状态栏设置为浅色背景和深色文本.当我在Phonegap移动应用程序中查看我的应用程序时,它工作正常.但在构建应用程序并在移动设备上安装后,它无法正常工作.我正在使用Android 7.
我试过Cordova版本4,5和7.这在任何版本都没有用.
我在config中使用了以下代码
<preference name="StatusBarBackgroundColor" value="#F1F1F1" />
<preference name="StatusBarStyle" value="default" />
Run Code Online (Sandbox Code Playgroud)
我已经尝试在设备就绪后在index.js中使用javascript
StatusBar.backgroundColorByHexString("#F1F1F1");
StatusBar.styleDefault();
Run Code Online (Sandbox Code Playgroud)
我尝试删除插件并按照StackOverflow中相关帖子的建议从github安装最新代码.什么都行不通.有什么建议?
另外,是否有任何回退代码来处理低于6的Android版本?我发现这些版本不支持状态栏中的深色文本.
我们有一个使用远程服务图像的Phonegap应用程序.
图像与Cache-Control标头一起提供:'Cache-Control':'max-age = 31536000'.
在iOS 12之前,图像被提取一次并在应用程序使用期间进行缓存.升级到iOS 12后,缓存停止工作,并始终从服务器获取图像.我们使用UIWebView(我们还没有迁移到WKWebView).
在iOS 12或任何其他平台(Android/web)上的Safari中不会发生这种情况.
我找不到任何有关为什么突然不再起作用的信息.有人有线索吗?
我正在使用Phonegap和Firebase(fcm)来接收推送通知。我正在使用Android 8进行测试。
我希望设备在前台运行时收到推送通知(作为应用程序中的弹出消息)。如果应用关闭或在后台运行,我希望消息显示为通知,当我单击通知时,它将在前台打开该应用并调用通知事件功能。
到目前为止发生的事情是:
打开应用程序时,将通过推送通知并在应用程序中显示-正确
当应用最小化时,在顶部栏中会显示一个推送通知-正确...但是
当我单击通知消息时,它将打开我的应用程序/将其置于前台,但是未调用“通知”事件侦听器-INCORRECT
关于此问题有很多寻求帮助的请求,我已经处理了很多请求,但是没有一个为我的应用程序提供有效的解决方案(大多数都在2016年至2018年之间,而不是在2019年之间)。
首先,这需要适用于Android。因此,我尝试删除通知有效负载,并且仅使用数据有效负载。但是,这不能解决问题。
这是我当前的有效负载:
$notification = array
(
'body' => 'test',
'title' => 'test',
"icon" => 'notification_icon',
"content_available" => true,
);
$data = array
(
"title" => "test",
"body" => "test",
"icon" => "notification_icon",
"content_available" => true,
);
$fields = array
(
'registration_ids' => $registrationIds,
'notification' => $notification,
'data' => $data,
"priority" => "high",
"content_available" => true
);
Run Code Online (Sandbox Code Playgroud)
据我了解,有3种发送通知的方式:
1)作为“通知”。如果该应用当前正在运行,则在前台运行;如果关闭或最小化该应用,则在顶部栏中的后台运行(并且该应用的图标上面有一个小徽章,表示一条消息);但是在后台运行时,当在应用程序上单击该消息时,加载但未调用on通知功能。
2)作为“数据”。这似乎仅在前景中起作用,没有顶部栏消息,并且该应用程序的图标上方没有小徽章。如果应用程序在后台运行,则根本没有推送通知。
3)作为“ notificaton”和“ data”。在后台时,应用程序图标上方会带有一个徽章。单击顶部条消息时,将加载应用程序,但不会调用on通知功能。
同样,即使应用程序在后台,如果它收到推送通知并将应用程序放在前台,也不会显示通知消息。仅当收到通知时应用程序已经在前台时才有效。
这是我的事件监听器:
var app …Run Code Online (Sandbox Code Playgroud) 我有一个在 iPad 上运行的cordova应用程序,最近我在新的IPadOS 13+上出现了一个非常奇怪的行为。
一些应该阻止代码流并等待用户输入的 javascript 本机函数(如 window.alert 或 window.confirm )不再这样做。因此,整个应用程序功能都会受到影响。
例如:
if(confirm("Are you sure ?"))
{
... // This block is not waiting for user input and executing straight away.
}
Run Code Online (Sandbox Code Playgroud)
或者
// ... some normal program flow
alert('anything here'); // Normally the program should wait for the user to press 'OK' button.
// ... rest of the code that doesn't wait for the alert to be closed
Run Code Online (Sandbox Code Playgroud)
这对整个应用程序来说很麻烦,你知道有什么解决方案吗?或任何可以帮助的东西?我也无法再将 ios 版本降级回 12。
附注。我不确定,但这可能是 IOS 13 的 safari webview 版本的错误吗? …