Cordova 在Phonegap IOS中停止过度滚动/反弹

Cordova 在Phonegap IOS中停止过度滚动/反弹,cordova,Cordova,我在IOS(ipad)上使用最新版本的Phonegap,我似乎无法在整个应用程序上禁用垂直超卷/反弹。我不介意它的内部元素,但当你上下滑动整个应用程序时,它看起来相当奇怪 我已尝试在.plist中将UIWebViewBounce设置为no,但这似乎没有起到任何作用 感谢您的帮助:)您必须修改config.xml文件中的属性。 只需将以下首选项设置为true <preference name="DisallowOverscroll" value="true" /> 接受的答案对我不

我在IOS(ipad)上使用最新版本的Phonegap,我似乎无法在整个应用程序上禁用垂直超卷/反弹。我不介意它的内部元素,但当你上下滑动整个应用程序时,它看起来相当奇怪

我已尝试在.plist中将
UIWebViewBounce
设置为
no
,但这似乎没有起到任何作用


感谢您的帮助:)

您必须修改config.xml文件中的属性。 只需将以下首选项设置为
true

<preference name="DisallowOverscroll" value="true" />


接受的答案对我不起作用,我必须将
UIWebViewBounce
设置为
false

<preference name="UIWebViewBounce" value="false" />

使用以下方法:

<preference name="UIWebViewBounce" value="false" />

这就是运行phonegap 3.0的我的应用程序的工作原理: 将以下行添加到config.xml

<preference name="webviewbounce" value="false"/>

现在,对于phonegap 3.0以上版本,请在config.xml文件中的syntex下方使用,它将100%工作

<preference name="DisallowOverscroll" value="true"/>

如果您在没有任何运气的情况下将
添加到config.xml,则可能更改了错误的文件。相反,在整个phonegap目录中搜索“DisallowOverscroll”。您应该找到几个实例。将这些更改为
true。


干杯。

在项目的config.xml中,在iOS首选项下,将DisallowOverscroll设置为true。默认情况下,该值为false,使整个视图与视图的内部元素一起滚动

<preference name="DisallowOverscroll" value="true" />


在项目的config.xml中,在iOS首选项下,将DisallowOverscroll设置为true

<preference name="DisallowOverscroll" value="true" />

我有一种方法可以实现这一点。但它不是传统的,因为它处理的是本机编码。在MainViewController中有一个名为webViewDidFinishLoad的方法。包括这个
WebView.scrollView.bounces=否

在这个方法里面

- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
    // Black base color for background matches the native apps
    theWebView.backgroundColor = [UIColor blackColor];
    theWebView.scrollView.bounces= NO;
    return [super webViewDidFinishLoad:theWebView];
}

因为这是ios本机代码,所以在任何phonegap/cordova发行版中都可以使用。

这对我来说很有效。尝试在phonegap应用程序的config.xml文件中添加以下代码:


如果其他方法无效,请尝试从css中删除
-webkit溢出滚动:触摸
,如果您有

谢谢你的回答。但如果您在windows Phone中遇到问题,这里是解决方案。 只需转到MainPage.xaml.cs文件并替换以下函数

public MainPage()
    {
        InitializeComponent();
        this.CordovaView.DisableBouncyScrolling = true;
        this.CordovaView.Loaded += CordovaView_Loaded;
    }

它对我有用:)

最好修改config.xml中的两个元素,如下所示:

<preference name="DisallowOverscroll" value="true"/>
<preference name="UIWebViewBounce" value="false" />

使用以下方法:-

function disallowOverscroll(){
  $(document).on('touchmove',function(e){
    e.preventDefault();
  });
  $('body').on('touchstart','.scrollable',function(e) {
    if (e.currentTarget.scrollTop === 0) {
      e.currentTarget.scrollTop = 1;
    } else if (e.currentTarget.scrollHeight
              === e.currentTarget.scrollTop
                  + e.currentTarget.offsetHeight) {
      e.currentTarget.scrollTop -= 1;
    }
  });
  $('body').on('touchmove','.scrollable',function(e) {
    e.stopPropagation();
  });
}
disallowOverscroll();

有关更多详细信息或提示与技巧,请阅读本文

我也有类似的问题,但无法用我目前找到的所有解决方案(如编辑config.xml)解决

但最后,只需编辑主体的CSS属性即可修复:

html,body
{
  overflow: auto;
  height:100%;
}

如果您是爱奥尼亚框架用户Abc.html文件内的内容,请尝试此方法


打开xCode->从左侧菜单中查找并单击config.xml->并将DisallowOverscroll值false更改为true 或者通过替换以前的代码来使用此代码

 <preference name="DisallowOverscroll" value="true" />

对于Cordova 7和iPhone 7+iOS 11.0.3,修改根目录config.xml并添加以下内容非常有效:

<platform name="ios">
    <preference name="DisallowOverscroll" value="true" />
    <preference name="UIWebViewBounce" value="false" />
    ... (other stuff) ...
</platform>

... (其他东西)。。。

更新config.xml后,我运气不好,如果是你的情况,试试这个

对于iPhone+iOS 11上的iOS,在CDVThemeableBrowser.m文件中,将属性设置为

self.disallowoverscroll = YES;

不允许Woverscroll对我不起作用

解决方案是确保无处滚动

例如,在我的例子中,它比主体更宽(可以更高),如下所示:

<body>
  <div style="margin: 5%" width: 95%;>something</div>
</div>

某物


现在,上面的
div
比导致滚动的主体大5%。将宽度设置为90%可解决此问题。

自Cordova 2.6以来,UIWebViewBounce已更改为DisallowOverscroll。在iphone应用程序中,我在哪里可以找到这个config.xml?我找到了几个不同的config.xml文件。主目录中有一个,我在那里更改了它。但是,当我为iOS构建应用程序时,又创建了两个config.xml文件,一个在platforms/iOS目录中,一个在platforms/iOS/www中。platforms/iOS中的文件似乎比我在主目录中编辑的文件有更多内容(包括不允许过度滚动的首选项)。对于迟到的人:只想确认这对CLI-6.5.0和iOS 10有效这对cordova 7.1.0和iOS 11正常工作。请记住,在ios项目中有两个config.xml。正确修改这两个版本以使其正常工作。我使用的是cordova的3.4版,因此无法正常工作。但这确实起到了作用:
UIWebViewBounce
已重命名为
disallowerscroll
,并且该值已被反转,但从CLI 6.5.0开始,它不适用于Windows Universal(WP8)应用程序。问题是它还禁用了velocity滚动。耶,我试图解决这个问题已经有一段时间了,我基本上得出结论,如果不禁用速度滚动,就不可能禁用过度滚动反弹,没有模仿javascript中的velocity。除了我自己添加的config.xml中的行之外,我没有发现任何其他类似的实例。这个答案在Cordova 6.1.1上对我很有效@TA先生肯定还有其他问题。这在WP8 Windows Universal apps上仍然不起作用,使用CLI 6.5.0.Idk了解Windows Universal apps,但在Cordova CLI 6.5.0和Cordova ios engine 4.5.1上对我起作用。它将滚动事件绑定更改为“document.body”而不是“window”。您在每个回答中都写了此评论。那么,如果(!self.webView)有什么用呢{[self-createGapView];webView.delegate=self;webView.scalesPageToFit=YES;[[webView-scrollView]setBounces:NO];}你测试过这段代码吗?它和Cordova完全没有关系。是的。你是对的。这是目标c代码。我使用它是因为每次Cordova更改我都必须修改代码或设置。我不必这样做。