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

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

我在为不同的 Android 手机测试内置工作灯的应用程序时遇到问题。 我有 nexus 4 和 samsung note2 用于测试,应用程序在 nexus 上运行良好,具有所有 native 和 jquery 移动功能,但在 samsung note2 的情况下,这些功能无法始终如一地工作。事实上,大多数时候,原生和 JQuery 移动功能在 samsung note2 中根本不起作用!我们无法跟踪问题。

不能在 Samsung note2 上运行但在 nexus 4 上运行良好的 JQuery 移动部分是:

    <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和 map 导航的插件。

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

    //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(){}
    

在导航功能中,我获取目的地的纬度和经度并将其传递给 cordova 插件。

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

1 来自 logcat 的第二个弹出窗口的日志,即 -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

最佳答案

据我所知,三星破坏了对某些设备的支持。
查看以下内容是否有帮助。

如果发生以下情况,请尝试将监听器添加到 touchstart
singleCursorHandlerTouchEvent -getEditableSupport False

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

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

关于android - Worklight 5.0.6 - 混合应用程序在不同安卓手机中的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21301312/

相关文章:

android - Ionic Android 构建抛出警告

android - 未找到符号 ExoPlayerFactory

android - ListView View 在滚动时随机更新

ibm-mobilefirst - IBM Worklight 的企业版和消费者版之间有什么区别?

javascript - 如何在 Worklight Server 适配器上执行 XMLHttpRequest?

ssl - Worklight 适配器相互 SSL

android - 将 MySql 数据库迁移到 sqlite for android

javascript - jquery mobile显示html内容

javascript - 如何在不检查设备的情况下禁用移动浏览器上的滚动?

jquery - 如何设置jquery移动 slider 的宽度