Worklight 5.0.6 - 混合应用程序在不同Android手机中的意外行为

时间:2014-01-23 06:51:59

标签: android jquery-mobile ibm-mobilefirst samsung-mobile

我在测试不同Android手机的工作灯内置应用程序时遇到了问题。 我有nexus 4和samsung note2进行测试,应用程序在nexus上运行良好,具有所有原生和jquery移动功能,但在三星note2的情况下,功能不能一致地工作。实际上大多数时候,本机和JQuery移动功能在三星note2中根本不起作用!我们无法追踪问题。

JQuery移动部件在三星note2上不起作用但在nexus 4上工作正常:

    <div id="Task_page" style="margin-top: -15px;">
       <a href="#TaskManagerPopUp" data-rel="popup" data-position-to="window" data-transition="pop">click here</div>                                               

<div data-role="popup" id="TaskManagerPopUp" class="bubble1" data-theme="d">
    <a href="#popupMenusms" data-rel="popup" data-position-to="window"
    data-transition="pop">for jquery function</a>
            <a href="" onclick="call(9060606060)">call</a> 
            <a href="" onclick="locate("address is here")">navigate</a> 
</div>

<div data-role="popup" id="popupMenusms" data-theme="d">
                <label>heay this is 2nd popup</label>
</div>
     </div>

第二个弹出窗口从未在Samsung Note2上显示

本机部分是用于打开dailer和地图导航的插件。

  1. 插件的javascript包装器包含在主html文件中。
  2. 有一个全局函数可以调用dailer和地图导航。

    //global function in main js file for dailer
    function call(phoneNmber){
    window.plugins.phoneDialer.dial(phoneNmber);
    }
    
    //global function for navigator
    function locate(address){
    showBusy();
    
    var invocationData = {
            adapter: 'LatLang',
            procedure: 'getGmapLatLng',
            parameters: [address]
    };
    WL.Client.invokeProcedure(invocationData, {
        onSuccess : onnavigateJobSuccess,
        onFailure : onnavigateJobFailed,
        timeout : 30000
    });
    }
    
    
    
    function onnavigateJobSuccess(result)
    {
            hideBusy();
    if(result.invocationResult.isSuccessful)
     {
        userlat=result.invocationResult["lat"];
        userlang=result.invocationResult["lng"];
    
          cordova.require('cordova/plugin/phonenavigator').doNavigate(userlat, userlang, successnavigate, errornavigate);
     }
    }
    
    
    function onnavigateJobFailed(error){hideBusy();}
    function successnavigate(){}
    function errornavigate(){}
    
  3. 在导航功能中,我将目的地的经纬度传递给cordova插件。

    第一个弹出窗口中的调用和导航在nexus 4上正常工作但在Samsung Note2上不起作用

    1 来自logcat的第二个弹出式ie-popupMenusms的日志,在NOTE2上没有显示:

    01-28 12:53:15.717: D/GestureDetector(3603): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 4 mFalseSizeCnt:0
    01-28 12:53:15.722: V/webview(3603):  singleCursorHandlerTouchEvent -getEditableSupport  FASLE 
    01-28 12:53:16.067: I/GATE(3603): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
    01-28 12:53:16.067: D/Cordova(3603): onPageFinished(file:///data/data/com.FieldWork/files/www/default/FieldWork.html#&ui-state=dialog)
    01-28 12:53:16.067: D/WebView(3603): loadUrlImpl: called
    01-28 12:53:16.067: D/DroidGap(3603): onMessage(onNativeReady,null)
    01-28 12:53:16.072: D/DroidGap(3603): onMessage(onPageFinished,file:///data/data/com.FieldWork/files/www/default/FieldWork.html#&ui-state=dialog)
    01-28 12:53:16.092: D/webcore(3603):  CORE loadUrl: called
    01-28 12:53:17.707: D/GestureDetector(3603): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 2 mFalseSizeCnt:0
    01-28 12:53:17.717: I/GATE(3603): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
    01-28 12:53:17.717: D/Cordova(3603): onPageFinished(file:///data/data/com.FieldWork/files/www/default/FieldWork.html)
    01-28 12:53:17.722: D/WebView(3603): loadUrlImpl: called
    01-28 12:53:17.722: D/DroidGap(3603): onMessage(onNativeReady,null)
    01-28 12:53:17.722: D/DroidGap(3603): onMessage(onPageFinished,file:///data/data/com.FieldWork/files/www/default/FieldWork.html)
    01-28 12:53:17.767: D/webcore(3603):  CORE loadUrl: called
    

    2 在一个地方工作的dailer功能提供了日志:

    01-28 13:12:46.305: D/GestureDetector(31954): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 10 mFalseSizeCnt:0
    01-28 13:12:46.310: V/webview(31954):  singleCursorHandlerTouchEvent -getEditableSupport  FASLE 
    01-28 13:12:46.670: I/GATE(31954): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
    01-28 13:12:46.670: D/Cordova(31954): onPageFinished(file:///data/data/com.FieldWork/files/www/default/FieldWork.html#&ui-state=dialog)
    01-28 13:12:46.670: D/WebView(31954): loadUrlImpl: called
    01-28 13:12:46.670: D/DroidGap(31954): onMessage(onNativeReady,null)
    01-28 13:12:46.670: D/DroidGap(31954): onMessage(onPageFinished,file:///data/data/com.FieldWork/files/www/default/FieldWork.html#&ui-state=dialog)
    01-28 13:12:46.775: D/webcore(31954):  CORE loadUrl: called
    01-28 13:12:47.725: D/GestureDetector(31954): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 2 mFalseSizeCnt:0
    01-28 13:12:47.730: V/webview(31954):  singleCursorHandlerTouchEvent -getEditableSupport  FASLE 
    01-28 13:12:48.045: D/FieldWork(31954): Dailers cordova.exec called with ::9854785633
    01-28 13:12:48.115: D/DroidGap(31954): Paused the application!
    01-28 13:12:48.115: D/CordovaWebView(31954): Handle the pause
    01-28 13:12:48.120: D/WebView(31954): loadUrlImpl: called
    01-28 13:12:48.130: I/GATE(31954): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
    01-28 13:12:48.130: D/webcore(31954):  CORE loadUrl: called
    01-28 13:12:48.150: D/Cordova(31954): onPageFinished(file:///data/data/com.FieldWork/files/www/default/FieldWork.html)
    01-28 13:12:48.150: D/WebView(31954): loadUrlImpl: called
    01-28 13:12:48.155: D/DroidGap(31954): onMessage(onNativeReady,null)
    01-28 13:12:48.155: D/DroidGap(31954): onMessage(onPageFinished,file:///data/data/com.FieldWork/files/www/default/FieldWork.html)
    01-28 13:12:48.205: D/webcore(31954):  CORE loadUrl: called
    01-28 13:12:48.495: D/webviewglue(31954): OnTrimMemory with EGL Context 0x58a63c78
    

    3 dailer函数在不工作时会将日志显示为:

    01-28 13:04:25.507: D/GestureDetector(26533): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 3 mFalseSizeCnt:0
    01-28 13:04:25.517: V/webview(26533):  singleCursorHandlerTouchEvent -getEditableSupport  FASLE 
    01-28 13:04:25.862: I/GATE(26533): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
    01-28 13:04:25.862: D/Cordova(26533): onPageFinished(file:///data/data/com.FieldWork/files/www/default/FieldWork.html#&ui-state=dialog)
    01-28 13:04:25.862: D/WebView(26533): loadUrlImpl: called
    01-28 13:04:25.867: D/DroidGap(26533): onMessage(onNativeReady,null)
    01-28 13:04:25.867: D/DroidGap(26533): onMessage(onPageFinished,file:///data/data/com.FieldWork/files/www/default/FieldWork.html#&ui-state=dialog)
    01-28 13:04:25.902: D/webcore(26533):  CORE loadUrl: called
    01-28 13:04:26.917: D/GestureDetector(26533): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 2 mFalseSizeCnt:0
    01-28 13:04:26.927: I/GATE(26533): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
    01-28 13:04:26.927: D/Cordova(26533): onPageFinished(file:///data/data/com.FieldWork/files/www/default/FieldWork.html)
    01-28 13:04:26.927: D/WebView(26533): loadUrlImpl: called
    01-28 13:04:26.927: D/DroidGap(26533): onMessage(onNativeReady,null)
    01-28 13:04:26.932: D/DroidGap(26533): onMessage(onPageFinished,file:///data/data/com.FieldWork/files/www/default/FieldWork.html)
    01-28 13:04:26.932: D/webcore(26533):  CORE loadUrl: called
    

1 个答案:

答案 0 :(得分:1)

据我所知,三星在某些设备上破坏了他们的支持 看看以下是否有帮助。

如果发生以下情况,请尝试将清单工具添加到touchstart  singleCursorHandlerTouchEvent -getEditableSupport False

phonegap + android Touch events Error singleCursorHandlerTouchEvent -getEditableSupport False
singleCursorHandlerTouchEvent -getEditableSupport FASLE bug

$('.element').on('touchstart', function(ev) {
   ev.preventDefault();
});