我在测试针对不同Android手机的worklight中内置的应用程序时遇到问题。
我有nexus 4和samsung note2进行测试,应用程序在nexus上具有所有本机和jquery移动功能的工作正常,但在samsung note2的情况下,这些功能不能始终如一地工作。事实上,在大多数情况下,本机和JQuery移动功能在三星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和地图导航的插件。
插件的javascript包装器包含在主html文件中。
有一个全局功能可以调用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(){}
在导航功能中,我采用目的地的经度和纬度并将其传递给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();
});