IBM Worklight 6.0 - Dojo application doesn't work on Samsung Galaxy S3

天大地大妈咪最大 提交于 2019-12-25 15:53:36

问题


I haven't been able to get any worklight/dojo apps to work on the Samsung Galaxy S3. I have put together a trivial Worklight application in Worklight Studio v6. It has 2 views. The first view has a text box and a button, the second view has a text box.

<div data-dojo-type="dojox.mobile.ScrollableView" id="view0"
    data-dojo-props="selected:true">
    <div data-dojo-type="dojox.mobile.Heading"
        data-dojo-props="label:'Page 0'"></div>
    <input data-dojo-type="dojox.mobile.TextBox">
    <button data-dojo-type="dojox.mobile.Button" id="theButton">Page
        1</button>
</div>
<div data-dojo-type="dojox.mobile.View" id="view1">
    <div data-dojo-type="dojox.mobile.Heading"
        data-dojo-props="label:'Page 1',back:'back',moveTo:'view0'"></div>
    <input data-dojo-type="dojox.mobile.TextBox">
</div>

The button on view0 is connected to a handler that transition to view1, and the header on view1 has a back button.

        dijit.registry.byId("theButton").on("click", function() {
            dijit.registry.byId("view0").performTransition("view1", 1, "slide");
        });

That's all there is to the app. It works everywhere I've tried it (emulators and Motorola Droid 4) except on the Galaxy S3. On the Galaxy, it looks like the dojo parser is failing. The page is white, the text boxes and button from both views are shown on the initial page, but there are no headers and nothing happens when you click on the button. Both the Motorola (where it works), and the Samsung (where it doesn't) are running Android 4.1.2.

Looking in LogCat for the Samsung, I see a few errors that I don't see on other platforms:

08-01 16:51:42.752: D/SimpleTest(26821): before: app init onSuccess
08-01 16:51:42.782: E/SpannableStringBuilder(26821): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
08-01 16:51:42.782: E/SpannableStringBuilder(26821): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
08-01 16:51:42.782: D/SimpleTest(26821): after: app init onSuccess
08-01 16:51:42.782: D/SimpleTest(26821): added onPause event handler 
08-01 16:51:42.782: D/SimpleTest(26821): wlclient init success
08-01 16:51:44.464: D/DroidGap(26821): onMessage(spinner,stop)
08-01 16:52:07.038: D/CordovaLog(26821): Error: scriptError
08-01 16:52:07.038: E/Web Console(26821): Error: scriptError:21
08-01 16:52:07.088: D/CordovaLog(26821): Error: scriptError
08-01 16:52:07.088: E/Web Console(26821): Error: scriptError:21

Googling around, I find references to the SPAN_EXCLUSIVE_EXCLUSIVE error. It seems to be associated with the Swype, or SwiftKey keyboards, or to Samsung TouchWiz. Most references to this problem are from folks doing Android native development, not hybrid app development, and other than disabling keyboards, I'm not finding many answers. I tried disabling the Swype keyboard, but that didn't change anything. Has anyone else seen this problem? Has anyone gotten a Worklight 6 dojo app to run on a Galaxy S3?


回答1:


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

Try to use this 'mobile-ui-layer.js' in your www/layers folder. Just copy the file and recompile the application.

The fix is based on the following problem:

  • IBM Worklight 6.0 - How to include Dojo patch with pre-built Dojo layers?

  • https://bugs.dojotoolkit.org/ticket/17164




回答2:


This will be fixed in a near future release for Worklight 6.0.

In the meanwhile please see the following Stackoverflow questions on the same topic:

  • Worklight core-web-layer.js errors
  • IBM Worklight 6.0 - Unable to run sample hybrid worklight app using dojo toolkit for android environment on avd?
  • IBM Worklight 6.0 - How to include Dojo patch with pre-built Dojo layers?


来源:https://stackoverflow.com/questions/18006727/ibm-worklight-6-0-dojo-application-doesnt-work-on-samsung-galaxy-s3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!