Ibm mobilefirst IBM Worklight 5.0.x-更改主HTML文件名

Ibm mobilefirst IBM Worklight 5.0.x-更改主HTML文件名,ibm-mobilefirst,worklight-studio,Ibm Mobilefirst,Worklight Studio,我希望我的主html文件与我的项目具有不同的名称 我发现如果我不使用相同的名称,Worklight将不会重新连接。我已尝试在iOS上更改application-descriptor.xml中的mainFile标记和worklight.plist中的wlMainFile条目 直接更新不起作用。更重要的是,应用程序没有重新连接,我得到一个灰色屏幕,大概是因为iOS试图使用错误的文件启动 例如: Project name: MyProject main file: home.html applicat

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

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

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

例如:

Project name: MyProject
main file: home.html
application-descriptor.xml: <mainFile>home.html</mainFile>
worklight.plist: <wlMainFile>home.html</wlMainFile>
上述方法不起作用

[稍后编辑以添加my 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>

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

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

[请注意,已对其进行编辑,以匹配上面@Idan Adar的建议。必须匹配主文件的不是项目,而是应用程序名称]

以下工作很好:

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中指定的值。

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

[请注意,已对其进行编辑,以匹配上面@Idan Adar的建议。必须匹配主文件的不是项目,而是应用程序名称]

以下工作很好:

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中指定的值。

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

应用程序文件夹名称 在application-descriptor.xml中:

应用程序元素中的id属性 主文件元素值 所有这些都应该相互匹配

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

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

应用程序文件夹名称 在application-descriptor.xml中:

应用程序元素中的id属性 主文件元素值 所有这些都应该相互匹配

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

发生这种情况是因为您没有在需要时完全更改它。请看我的答案。我确实在您需要的所有位置完全更改了文件名。有趣的是,在初始应用程序启动时,使用了wlMainFile中提到的HTML文件和application-descriptor.xml。在iOS应用程序重新启动时,与项目同名的HTML文件就是调用的文件。请考虑取消1投票。至少我的答案是一个解决方案。发生这种情况是因为您没有在需要时完全更改它。请看我的答案。我确实在您需要的所有位置完全更改了文件名。有趣的是,在初始应用程序启动时,使用了wlMainFile中提到的HTML文件和application-descriptor.xml。在iOS应用程序重新启动时,与项目同名的HTML文件就是调用的文件。请考虑取消1投票。至少我的答案是一个解决方案。谢谢你的回复@Idan Adar。我仔细检查了一遍。在您提到的任何其他文件中,我都没有对我的主HTML文件的引用—主CSS文件,主JavaScript文件。我确实在application-descriptor.xml中的不同位置更改了文件名,显然是文件名本身,在worklight.plist for iOS中也更改了文件名。在worklight.plist中更改它没有意义,文件的内容是在构建时生成的,因此需要关注其他文件。我的意思是你想把我提到的都改成同一个名字。使用application-descriptor.xml编辑您的问题。确保在更改文件名和引用后重新构建项目。并使用更新后生成的Xcode项目在您的设备上运行。谢谢Idan。是的,我肯定会在进行更改后重建项目。这包括验证worklight.plist是否已更新。问题是,除非主文件与项目相同,否则应用程序无法可靠运行。似乎我确实错过了更改应用程序文件夹重命名部分而不是项目文件夹。请看我修改后的答案。谢谢回复@Idan Adar。我仔细检查了一遍。我没有对主HTML的引用
您提到的任何其他文件中的文件,即主CSS文件、主JavaScript文件。我确实在application-descriptor.xml中的不同位置更改了文件名,显然是文件名本身,在worklight.plist for iOS中也更改了文件名。在worklight.plist中更改它没有意义,文件的内容是在构建时生成的,因此需要关注其他文件。我的意思是你想把我提到的都改成同一个名字。使用application-descriptor.xml编辑您的问题。确保在更改文件名和引用后重新构建项目。并使用更新后生成的Xcode项目在您的设备上运行。谢谢Idan。是的,我肯定会在进行更改后重建项目。这包括验证worklight.plist是否已更新。问题是,除非主文件与项目相同,否则应用程序无法可靠运行。似乎我确实错过了更改应用程序文件夹重命名部分而不是项目文件夹。请看我修改过的答案。