小编tjc*_*c59的帖子

PhoneGap readAsDataURL

我正在使用PhoneGap编写我的第一个Android应用程序,但我对FileReader的文档感到有些困惑.我需要使用readAsDataURL()方法获取一个图像文件并将其转换为Base64字符串.从他们的文件:

function win(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
    console.log("read success");
    console.log(evt.target.result);
};
reader.readAsDataURL(file);
};
var fail = function(evt) {
console.log(error.code);
};
entry.file(win, fail);
Run Code Online (Sandbox Code Playgroud)

除了最后一行,我几乎理解了所有这些:entry.file(win,fail).没有定义入口,但我认为它是一个FileEntry对象.问题是我找不到关于如何生成FileEntry对象的文档,以及在什么时候传递文件路径.

javascript android cordova

6
推荐指数
1
解决办法
4339
查看次数

页面加载时的jQuery Mobile Dialog

在我的第一个jQuery Mobile应用程序上工作.有一个localStorage值必须在整个应用程序中有一个值,所以我点击了pageshow事件来检查这个值:

$(function () {
$("div[data-role='page']").on("pageshow", function (event, ui) {
    if (getValue() == null) {
        // show the dialog
        $.mobile.changePage("#dialog");
    }
});
});
Run Code Online (Sandbox Code Playgroud)

这在浏览各个页面时有效,但在第一页加载时永远不会被调用.我试图在我添加pageshow监听器的部分下面再次复制上面的If语句,但它具有显示对话框,隐藏它,然后再次显示它的效果.

在第一页上,似乎打开对话框正在触发pageshow(这很奇怪,考虑到我的选择器),这又触发了另一个对话框.有没有人有关于如何解决这个问题的建议,或者更好的方式来解决整个问题?

更新#1:我试过了

$.mobile.changePage( "#mypage", { allowSamePageTransition: true, transition: "none" } );
Run Code Online (Sandbox Code Playgroud)

但它与原始问题具有相同的效果,它启动对话框,然后隐藏它,然后再次显示它.似乎以某种方式启动对话框正在触发pageshow事件,即使我试图在我的选择器中过滤掉它.请注意,如果删除转换:"none"选项,则根本不显示该对话框.

更新#2:我还试图创建一个空白的初始页面,然后进行简单的页面转换

$.mobile.changePage("#mypage");
Run Code Online (Sandbox Code Playgroud)

但它仍然没有正确的行为.在这种情况下,它确实将我带到下一页,但是不会触发pageshow事件,因为我的对话框没有出现.我知道它没有触发,因为我可以从导航菜单中选择另一个页面,然后会出现对话框.

更新#3:我更改了我的选择器,我附加了pageshow监听器.我没有选择data-role ="page"的位置,而是按照ID选择特定的页面.然后我重新尝试了我在前两次更新中描述的两种方法,但它仍然无法正常工作.首先,当我尝试使用allowSamePageTransition刷新初始页面时,似乎pageshow会触发两次,因为对话框会启动两次.然后,当我尝试使用空白的初始页面,然后在我附加pageshow监听器后立即进行重定向时,没有任何反应,对话框永远不会出现.如果我导航到任何其他页面,该对话框将按预期工作.我不明白为什么这第一页太麻烦了.

dialog jquery-mobile pageshow

3
推荐指数
1
解决办法
8749
查看次数

标签 统计

android ×1

cordova ×1

dialog ×1

javascript ×1

jquery-mobile ×1

pageshow ×1