Phonegap / jQuery移动页面转换闪烁

时间:2013-05-27 17:25:52

标签: javascript android jquery cordova jquery-mobile

我是Phonegap / jQuery mobile的新手,我在页面转换问题时面临白屏。我试图应用我在网络上找到的许多解决方案(例如-webkit-backface-visibility:hidden;),但仍然没有解决问题。

我还将defaultPageTransition设置为none(在jQuery mobile .js文件中),但仍然没有。

我不能关闭硬件加速,因为我的 iDangerous 滑动菜单需要它。我的所有链接都是这样的:

<a href='javascript:void(0)' class='news-main' onclick='someFunction()'>Some String</a>

当我点击链接时,会调用someFunction()。方法someFuction看起来像这样:

function someFunction(){
    //setting some value that I need in next page
    window.sessionStorage.setItem("someValue",someValue);
    window.location="next-page.html";
}

除了页面转换期间的白色闪光外,一切正常。它仅在某些设备上显示(例如Android 4 +)。

有什么方法可以解决这个问题吗?或者也许我做错了什么?提前谢谢!

6 个答案:

答案 0 :(得分:3)

你需要一些东西才能调用Jquery mobile js这样做:

<script src="js/jquery-1.10.2.min.js" type="text/javascript"></script>
                <script type="text/javascript">
                $(document).bind("mobileinit", function()
                {
                   if (navigator.userAgent.indexOf("Android") != -1)
                   {
                     $.mobile.defaultPageTransition = 'none';
                     $.mobile.defaultDialogTransition = 'none';
                   }
                });
                </script>
                <script src="js/jquery.mobile-1.3.2.min.js" type="text/javascript"></script>

那就够了 refer

答案 1 :(得分:2)

android:hardwareAccelerated="false"

打开您的清单并将其粘贴到应用程序标记内。因为您的设备硬件每次都加速调用

答案 2 :(得分:1)

尝试以下

<a href='#' class='news-main' id='mylink'>Some String</a>

JS

$(document).on('pagecreate', function(){
  $('#mylink').bind('click',function(){
      someFunction()
  });
});

function someFunction(){
  window.sessionStorage.setItem("someValue",someValue);
  $.mobile.changePage("next-page.html");
}

答案 3 :(得分:1)

为更高级别的Android目标构建时, android:hardwareAccelerated 会隐式设置为true,这会导致在jQuery Mobile过渡期间出现闪烁。

将其设置为 android:hardwareAccelerated =“false”将解决此问题。 (我也有缩放和用户可扩展禁用)

http://developer.android.com/guide/topics/graphics/hardware-accel.html

答案 4 :(得分:1)

<script src="js/jquery-1.10.2.min.js" type="text/javascript"></script>
                <script type="text/javascript">
                $(document).bind("mobileinit", function()
                {
                   if (navigator.userAgent.indexOf("Android") != -1)
                   {
                     $.mobile.defaultPageTransition = 'none';
                     $.mobile.defaultDialogTransition = 'none';
                   }
                });
                </script>
                <script src="js/jquery.mobile-1.3.2.min.js" type="text/javascript"></script>

答案 5 :(得分:0)

您可以将链接写为

<a href='javascript:void(0)' class='news-main' onclick='someFunction()' data-transition="none" >Some String</a>

因为jquery mobile在页面转换中不是很流畅。因此,我们可以选择关闭它们,直到最新版本的jquery mobile与正常页面转换一起发布。