我已经离开了我的Cordova应用程序一段时间,但昨天刚刚做了一个新的克隆,并注意到它有"白屏死机"症状 - 启动画面显示,程序加载......然后我只是得到一个空白的屏幕.更多细节:
<splash>元素.Cordova/PhoneGap最近做了什么可能导致这种情况?关于如何隔离这个的任何想法?我真的很难过.
这几天我一直在敲打这个.在尝试创建新的FileTransfer()对象时获得许多"对象未定义"错误后,看起来问题更基本 - 不知何故,DeviceReady事件未触发.
Stack Overflow在这个问题上有很多点击,但是大多数都与3x之前的cordova版本有不同的体系结构(我在4.1.2).我已经尝试了我能找到的新主题中的建议 - 删除和添加插件,更新cordova等 - 无济于事.为了试图找出问题所在,我已将启动代码注释为几行:
index.html的:
<!DOCTYPE html>
<html>
<head>
<title>Blah</title>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1, user-scalable=no, minimum-scale=1, maximum-scale=1">
<link href="res/topcoat/css/topcoat-mobile-light.min.css" rel="stylesheet">
<link href="res/css/styles.css" rel="stylesheet">
<link href="res/css/pageslider.css" rel="stylesheet">
<script data-main="js/main" src="lib/require.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)
Main.js:
require(["app/Application"], function (Application) {
"use strict";
document.addEventListener("deviceready", function(){
$('body').html("<p>device is ready</p>");
},true);
$('body').html("<p>waiting...</p>");
});
Run Code Online (Sandbox Code Playgroud)
屏幕只显示"等待......",而不是在一点点后在身体中显示"设备就绪".这在iOS模拟器和浏览器(cordova模拟浏览器)上都会发生.
科尔多瓦信息:
$ cordova -v
4.1.2
Run Code Online (Sandbox Code Playgroud)
插件信息:
$ cordova plugins
org.apache.cordova.globalization 0.3.3 "Globalization"
Run Code Online (Sandbox Code Playgroud)
(如果不存在全球化,我会得到相同的结果).
还有其他地方我应该看吗?我正在从命令行运行,如果这有所不同.
有了一些Android(三星,LG,HTC)的味道,看起来可以设置默认的系统字体而不需要生根.我没有其中一个设备可以测试(我有一个较旧的联想平板电脑),但我想知道以下内容:
编辑:我添加的方式,我想可能会奏效,但在现实中并不:比较Typeface.DEFAULT从文件创建字样的对象/system/fonts,/system/font和/data/fonts目录.这不是一个答案,但它可能有助于刺激某人提出一个.另请注意,TTFAnalyzer类不是我的.代码如下:
private String getDefaultFont() {
String[] fontdirs = { "/system/fonts", "/system/font", "/data/fonts" };
TTFAnalyzer analyzer = new TTFAnalyzer();
Typeface tfDefault = Typeface.DEFAULT;
Typeface tfTemp = null;
String defaultFontName = "";
System.out.println("getDefaultFont(): entry");
System.out.println("tfDefault: " + tfDefault.toString());
for ( String fontdir : fontdirs )
{
File dir = new File( fontdir );
if ( !dir.exists() )
continue;
File[] files = dir.listFiles();
if ( files == …Run Code Online (Sandbox Code Playgroud) 我注意到虽然cordova/PhoneGap和PhoneGap构建之间的大多数差异相当小,但似乎给我带来了一些麻烦 - 图标和启动画面的预期路径:
这最终会破坏PhoneGap Build或CLI中的图标/启动画面的副本.有没有人找到解决这个问题的方法,以便本地和PhoneGap Build生成的应用程序都有他们需要的图标?
根据SO上几篇文章的推荐,我一直在与InnoTools Downloader合作,尝试在Inno设置的安装脚本中为我们的应用程序安装第三方依赖项.
不幸的是,InnoTools Downloader在几年内还没有更新,并且开始看起来与目前的Inno Tools设置(目前我机器上的5.5.2(u))不兼容.ITD中的PChar参数已被PAnsiChar参数取代,当我尝试运行各种ITD_xxx程序时,它会给我不同程度的失败:
ITD_DownloadFiles 给出类型不匹配错误,无法在Inno Setup中编译ITD_DownloadFile 编译,但显示的文件长度为6KB且不可运行.有没有人让ITP与更新的Inno(5.3.0之后)unicode版本一起运行?或者我应该四处寻找另一种解决方案?
编辑只是为了澄清一点,我尝试进入it_download.iss文件并用PAnsiChar替换所有PChar实例.当我第一次尝试将ITD与我的设置脚本集成时,这让我超越了编译错误.
以下是Inno脚本的示例部分:
[Code]
procedure InitializeWizard();
begin
ITD_Init; // initialize the InnoTools Downloader
// install 3rd party tool (ex. Git) from the internet.
if ITD_DownloadFile('http://git-scm.com/download/win',expandconstant('{tmp}\GitInstaller.exe'))=ITDERR_SUCCESS then begin
MsgBox(expandconstant('{tmp}\GitInstaller.exe'), mbInformation, MB_OK);
Exec(ExpandConstant('{tmp}\GitInstaller.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, tmpResult);
end
end;
Run Code Online (Sandbox Code Playgroud)
当它运行时,它将弹出一个对话框,说明它"下载"并存储文件的位置 - 在我的机器上它位于c:\ Users \\ AppData\Local\Temp的子目录中.此文件为6KB,而不是从http://git-scm.com/download/win下载的文件,目前为15,221KB.
该ITP_DownloadAfter方法给出了类似的结果.
我希望能够将一些文件复制到我的PhoneGap/Cordova的Documents目录中,以便在我使用cordova-plugin-file API列出该目录时显示它们.不幸的是,文件API与平板电脑存储上实际存在的内容之间似乎存在一些脱节.以下是File插件规范所说的系统目录结构应如下所示:
file:///android_asset/| cordova.file.applicationDirectoryfile:///android_asset/data/data/<app-id>/| cordova.file.applicationStorageDirectoryfile:///android_asset/data/data/<app-id>/cache| cordova.file.cacheDirectoryfile:///android_asset/data/data/<app-id>/files| cordova.file.dataDirectoryfile:///android_asset/data/data/<app-id>/Documents| cordova.file.documents<sdcard>/| cordova.file.externalRootDirectory<sdcard>/Android/data/<app-id>/| cordova.file.externalApplicationStorageDirectory<sdcard>/Android/data/<app-id>/cache| cordova.file.externalCacheDirectry<sdcard>/Android/data/<app-id>/files| cordova.file.externalDataDirectory不幸的是,当我将设备(4.4.2 /联想平板电脑)插入我的PC或Mac时,我没有看到这一点.相反,我看到:
- Internal Storage
|- .IdeaDesktopHD
|- .lelauncher
|- .magic
|- .powercenterhd
|- Alarms
|- Android
|- Audio
|- Bluetooth
|- Contact
|- data
|- DCIM
|- Document
|- Download
|- googleota
|- legc
|- LenovoReaper
|- LesyncDownload
|- Movies
|- MyFavorite
|- Notifications
|- Others
|- Pictures
|- …Run Code Online (Sandbox Code Playgroud) 我float最近在使用CSS 容器时遇到了一些布局重叠问题,并开始考虑使用它display: inline-block。到目前为止,一切都很好...除了我需要能够添加换行符,clear对于浮点数也是如此。一些示例文字...
.ib {
border: 1px solid #333;
display: inline-block;
padding: 3px;
}
.block-start {
border: 1px solid #0cc;
display: inline-block;
padding: 3px;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="block-start">block-start</div>
<div class="ib">inline-block</div>
<div class="ib">inline-block</div>
<div class="ib">inline-block</div>
<div class="ib">inline-block</div>
<div class="block-start">block-start</div>
<div class="ib">inline-block</div>
<div class="ib">inline-block</div>
<div class="ib">inline-block</div>
<div class="ib">inline-block</div>
</div>Run Code Online (Sandbox Code Playgroud)
是否可以让我的.block-start <div>元素开始新的一行?
编辑:我应该提到,每个.block-start元素都需要与其他ib块内联,例如章节编号。