【发布时间】:2019-09-19 11:17:10
【问题描述】:
自从我升级到 WL 6.2 后,直接更新不再适用于 iOS。 我想要实现的是让 iPad 和我的 Windows 机器直接更新。这样我就可以在我的 windows 机器上开发并使用直接更新将我的更改推送到 iPad (iOS 7.1.2)。以下场景描述了我的问题。
在 Mac 上的 worklight studio 中新建一个 WL 项目(今天刚刚安装了最新的 WL 插件(platformVersion=6.2.0.00.20140724-2139)。添加 iOS 作为环境并将 main.js 替换为以下代码:
function wlCommonInit(){
WL.Client.connect({
onSuccess: onConnectSuccess,
onFailure: onConnectFailure
});
}
function onConnectSuccess() {
WL.Logger.debug("Connect success.");
}
function onConnectFailure() {
WL.Logger.debug("Connect failed.");
}
将项目作为 Xcode 项目运行,并使用 Xcode 将应用程序部署到 iPad。现在按照以下步骤重现该问题:
- 在 index.html 中进行修改
- 在 Eclipse 中的本地 Worklight 服务器上重新部署应用程序
- 杀死您的应用并重新启动它
- 直接更新正在运行,您的更改会反映在您的应用程序中。是的!
现在作为一个非常基本的下一步,尝试使用带有自定义服务器 URL 的直接更新。在 iPad 设置中加粗使用自定义 URL 复选框,并将自定义服务器 URL 更改为本地服务器的 URL。
当我现在重试步骤 1 到 3 时,直接更新失败。启动时,应用程序通知我有可用更新,当我单击更新时,下载进度条出现,但永远保持在 0%。在自定义服务器 URL 中,我只将 IP 更改为我的 macbook 的 IP,并删除了项目名称后的破折号。我还尝试将 URL 更改为我的 Windows 开发机器的 URL(也使用最新的 WL eclipse 插件),但这会导致相同的行为。
最后一句话;我希望当我禁用使用自定义 URL 复选框时;直接更新将再次起作用。但事实并非如此。
【问题讨论】:
-
这里的问题是项目名称后删除的破折号。因为每当您将应用程序部署到服务器时,它可以理解您的应用程序中的某些内容发生了变化,并将其作为直接更新推送到设备(或)模拟器。但是您的客户端不知道在哪里加载网络资源,即(“Source”)。这纯粹是我的假设,只需在 URL 末尾使用 / 即可。
-
Kawinesh,当我在项目名称后添加破折号并重试时,我进入了 onFailure 处理程序。当我使用 6.1 时也是这种情况,但是当我在 6.1 中删除破折号时,一切都会正常工作。只是要清楚;这是我的自定义 URL 的样子:http://172.17.22.50:10080/HelloWorld
-
当您说“更改服务器 URL”时,这对我来说意味着您有一个外部服务器。正确的?如果是这样,在使用新资源构建应用程序后,您是否还获取 .wlapp 文件并通过更改服务器 URL 将设备中的应用程序指向的服务器 URL 部署到该服务器 URL?
-
Idan,我没有外部服务器。我只想做一个基本测试并使用自定义服务器 URL 连接到我的开发机器(mac)上的本地 eclipse 服务器。下一个测试是在我的 windows 开发机器上使用我的本地 eclipse 服务器的直接更新。这样,如果我想在 iPad 上测试新版本的应用程序,我就不需要每次都切换到 mac。这在 WL 6.1 中有效。
-
但它已经收到了一个 URL。我不明白您将其更改为自定义 URL 是什么意思。我建议您使用完整的分步说明编辑问题,以帮助和重现您的问题。
标签: ios ibm-mobilefirst