IBM Worklight 5.0.x - изменение основного имени файла HTML
Я хочу, чтобы мой основной HTML-файл имел другое имя, чем мой проект.
Я обнаружил, что Worklight не будет переподключаться, если я не использую то же имя. Я попытался изменить тег mainFile в application-descriptor.xml и изменить запись wlMainFile в worklight.plist на iOS.
Прямое обновление не работает. Что еще более важно приложение не переподключается, и я получаю серый экран (предположительно, потому что 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, особенно после первоначального использования приложения.
2 ответа
При изменении имени файла HTML обязательно измените также:
application folder
названиеВ application-descriptor.xml:
id
атрибут вapplication
элементmainFile
значение элемента
Все должны соответствовать друг другу.
Обязательно удалите родную папку и пересоберите проект. Приложение продолжит загрузку после первого раза, а прямое обновление продолжит функционировать.
Единственное решение, которое я нашел, - это присвоить моему основному файлу то же имя, что и у приложения в проекте. Мое приложение работает нормально, когда я делаю это.
[Обратите внимание, что это было отредактировано в соответствии с рекомендацией @Idan Adar выше. Это не ПРОЕКТ, который должен соответствовать mainFile, а имя ПРИЛОЖЕНИЯ]
Следующее работает отлично:
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 правильно запускает приложение iOS в первый раз, используя файл, указанный в wlMainFile. Затем, когда он должен возобновить или перезапустить, он ищет имя приложения, а не значение, указанное в wlMainFile.