2012-11-22 2 views
13

내 애플리케이션에 활동 표시기를 표시하려고합니다. 활동 표시기에 activity.js을 사용하고 있습니다. 브라우저와 아이폰에서 잘 작동하고 있지만 안드로이드 기기에서는 작동하지 않습니다.jQuery 모바일 활동 표시기가 안드로이드에 표시되지 않음

나는 왜 표시기가 안드로이드 장치에서 작동하지 않는지 알지 못합니다. 여기

는 활동 표시 내 샘플 코드입니다 :이 ..이 도움이 될 수 Android..try의 기본 활동 표시를 보여주기 위해 다음 코드를 사용했다

function showIndicator() { 
    console.log("inside show indicator"); 
    applyOverLay(); 
    var showIndicator = document.createElement("div"); 
    showIndicator.setAttribute("class", "activity-indicator"); 
    document.body.appendChild(showIndicator); 
    $('.activity-indicator').activity({ 
     width: 5, 
     space: 1, 
     length: 3, 
     color: '#fff' 
    }); 
} 

function applyOverLay() { 
    var overlay = document.createElement("div"); 
    overlay.setAttribute("id", "overlayAttr"); 
    overlay.setAttribute("class", "overlay"); 
    document.body.appendChild(overlay); 
} 

function hideindicator() { 
    $('.activity-indicator').activity(false); 
    setTimeout(function() { $(".activity-indicator").empty().remove(); }, 0); 
    setTimeout(function() { $(".overlay").empty().remove(); }, 0); 
} 

function loadhtmlpage() { 
    //location.href='#refillReminder'; 
    $.mobile.changePage("#refillReminder"); 
    showIndicator(); 
    hideindicator(); 
} 

style.css: 

.activity-indicator { 
    padding: 10px; 
    position: absolute; 
    top: 50%; 
    left: 45%; 
    z-index: 1001; 
} 
+1

그것은 도움이 될 것이다 :

http://jsbin.com/oPIyuqUk/1/edit?html,css,js,output

또는 여기 JQuery와에게 모바일 로더를 시도 : 활동 로더를 들어 다음과 같은 것을 시도 jQueryMobile) 및 브라우저 또는 웹보기가있는 컴파일 된 응용 프로그램에서이 동작을 볼 수 있는지 여부를 지정합니다. –

답변

1

..

document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() { 
    $(document).bind("ajaxSend", function() { 
     navigator.notification.activityStart("App Name","Loading..."); 
    }).bind("ajaxStop", function() { 
     navigator.notification.activityStop(); 
    }).bind("ajaxError", function() { 
     navigator.notification.activityStop(); 
    });  

} 
1

loadhtml 페이지 메소드에 표시기를 표시하고 페이지 쇼 메소드에 핸들러를 추가해야합니다. #refillReminder jquery 페이지를 해제하십시오.

저는 jQuery Mobile의 기본 표시기를 사용했으며 ajax 호출과 같은 긴 작업 전에 같은 페이지에 표시하고 항상 처리기에서 숨기려고합니다.

또한 0 시간 초과로 표시 한 후에는 그것을 숨기려고 시도하는 것이 이상하게 보입니다.

1

당신은 사용, 대체로 기본 JQuery와 모바일 활동 표시를 사용할 수 있습니다

$.mobile.loading('hide'); //to hide the spinner 
$.mobile.loading('show'); //to show the spinner 

구성 요소는 당신이 테마를 사용하거나 회전 GIF를 덮어 쓸 수 있습니다 매우 유연합니다.

여기

더 많은 정보 Jquery Mobile Loader

1

안드로이드 브라우저는 약간 느린 데스크톱 브라우저에 비교한다 . 귀하의 경우, 표시기가 Android 브라우저에서로드하는 데 시간이 걸릴 수 있지만 언급 한 문제로 인해 해당 시간 내에 요청이 이미 완료되어 표시기가 표시되지 않아 CSS 스타일을 사용하려고했습니다. 가능한 경우 클래스를 추가/제거하고 자바 스크립트로 인라인 CSS 스타일을 피하십시오. 같은 (당신은 당신이 사용하는 소프트웨어의 버전 번호를 제공 한 경우

http://demos.jquerymobile.com/1.2.1/docs/pages/loader.html

관련 문제