1

使用 Dojo 1.9 开发 Worklight 6.0 应用程序时,我们在运行 Android v4.1.2(非常常见)的 Galaxy SII、SIII、Note 设备上遇到了一些页面导航问题。

我们看到Dojo 补丁 #17164解决了这些问题。
此补丁不包含在 Worklight 的默认 Dojo 构建中。

我们试图通过将文件放在项目的 dojox\mobile 文件夹中来包含它,但没有任何效果 - 我们猜测它在构建期间被未修补的类覆盖。

有没有其他方法可以包含/定义这个补丁?我们更愿意避免自己定制构建 Dojo 以跟上 WL 版本。

4

3 回答 3

1

由于您希望避免自定义构建 Dojo,因此一种替代方法可能是www/layers/mobile-ui-layers.js从您的项目中删除 并依赖 Dojo 库项目在开发期间提供资源。然后,您可以将更新后的原始文件放在 Dojo Library 项目中并使用 Mobile Browser Simulator。但是,在部署到设备时,您必须将曾经属于 mobile-ui-layers 的所有应用程序所需资源放入项目www/目录中,并保持适当的目录结构。

有关 Dojo 库项目的信息以及找出应用程序请求哪些 Dojo 资源,请参阅 Worklight Studio 信息中心文档Worklight Dojo 库项目设置

如果您决定冒险并执行自定义 Dojo 构建,您可以使用Dojo Build Factorymobile-ui-layers.js重新构建文件以使用修补文件。

于 2013-07-10T04:34:22.270 回答
0

我已经使用猴子补丁来完成你想要做的事情。

require(['dojox/mobile/css3'], function(css3) {    
    css3.prototype.name = function(p, hyphen) {
        // put your patched version of the function here.
    };
});

您需要确保在调用任何需要使用修补版本的代码之前执行此代码。

您还将从原始函数中复制代码。每次升级 Dojo 或 Worklight 时,您都需要评估是否仍然需要补丁,或者是否需要修改补丁,因为对可能不属于补丁的原始功能的更改。

http://en.wikipedia.org/wiki/Monkey_patch

“猴子补丁”真的那么糟糕吗?

于 2013-07-09T13:12:53.490 回答
0

https://dl.dropboxusercontent.com/u/40842201/Worklight%20Samsung%20fix/mobile-ui-layer.js

尝试在您的 www/layers 文件夹中使用此“mobile-ui-layer.js”。只需复制文件并重新编译应用程序。

该修复基于以下问题:

于 2013-10-16T09:42:30.247 回答