1

我希望我的主 html 文件具有与我的项目不同的名称。

我发现如果我不使用相同的名称,Worklight 将不会重新连接。我尝试更改 application-descriptor.xml 中的 mainFile 标记并更改 iOS 上 worklight.plist 中的 wlMainFile 条目。

直接更新不起作用。更重要的是,应用程序没有重新连接,我得到一个灰屏(可能是因为 iOS 试图使用错误的文件启动)。

例如:

Project name: MyProject
main file: home.html
application-descriptor.xml: <mainFile>home.html</mainFile>
worklight.plist: <wlMainFile>home.html</wlMainFile>

以上不起作用。

[稍后编辑以添加我的 application-descriptor.xml]

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Licensed Materials - Property of IBM
             5725-G92 (C) Copyright IBM Corp. 2006, 2012. All Rights Reserved.
         US Government Users Restricted Rights - Use, duplication or
         disclosure restricted by GSA ADP Schedule Contract with IBM Corp. -->
<!-- Attribute "id" must be identical to application folder name -->
<application xmlns="http://www.worklight.com/application-descriptor" id="agent" platformVersion="5.0.6">
 <displayName>My app</displayName>
 <description>My application description </description>
 <author>
    <name>Redacted</name>
    <email>redacted@foo.com</email>
    <homepage>http://redacted.com</homepage>
    <copyright>(c) redacted LLC</copyright>
 </author>
<height>748</height>
<width>1024</width>
<mainFile>home.html</mainFile>
<thumbnailImage>common/images/ipad-app-icon.png</thumbnailImage>
<!--  -->
<ipad bundleId="com.redacted.myproject" version="1.0">
    <worklightSettings include="true"/>
    <security>
        <encryptWebResources enabled="false"/>
        <testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3"/>
    </security>
</ipad>
<!--  -->
<android version="1.0">
    <worklightSettings include="true"/>
    <security>
        <encryptWebResources enabled="false"/>
        <testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3"/>
        <publicSigningKey>Replace this text with the public key of the certificate with which you sign the APK. 
        For details see the Worklight Developer's Reference Guide.</publicSigningKey>
    </security>
</android>
<worklightServerRootURL>http://${local.IPAddress}:8080</worklightServerRootURL>
</application>

因此,需要明确的是,如果我遇到 mainFile 的名称不是项目名称的问题。Worklight 并不总是调用 mainfile 指定的文件名,尤其是在初次使用应用程序之后。

4

2 回答 2

3

如果更改 HTML 文件名,请确保也更改:

  1. application folder名称_
  2. 在 application-descriptor.xml 中:

    • idapplication元素中的属性
    • mainFile元素值

都应该相互匹配。

确保删除本机文件夹并重新构建项目。应用程序将在第一次后继续加载,直接更新将继续运行。

于 2013-06-22T01:37:15.883 回答
1

我找到的唯一解决方案是将我的主文件命名为与项目中的应用程序相同的名称。当我这样做时,我的应用程序运行良好。

[请注意,这已被编辑以匹配上面@Idan Adar 的建议。必须匹配mainFile的不是PROJECT,而是APPLICATION名称]

以下工作正常:

Project name: MyProject
main file: MyProject.html
application-descriptor.xml: <mainFile>MyProject.html</mainFile>
worklight.plist: <wlMainFile>MyProject.html</wlMainFile> (this is a generated file)

Worklight 似乎第一次使用 wlMainFile 中指定的文件正确启动了 iOS 应用程序。然后当它必须恢复或重新启动时,它会查找应用程序名称而不是 wlMainFile 中指定的值。

于 2013-06-21T22:04:12.373 回答