PhoneGap iOS如何防止过度滚动?

3

PhoneGap 版本:2.9

测试设备:iOS 6.1.3 上的 iPhone 3gs

我使用 Adobe 提供的 PhoneGap 构建服务

我想要防止整个应用程序过度滚动。我已经阅读了相关问题,并将以下内容添加到我的 config.xml 文件中:

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

这没有任何作用。

我做错了什么?


看一下昨天提出的相同问题 - http://stackoverflow.com/questions/17530019/ios-phonegap-disallow-overscroll-not-working-properly/17550558#17550558 - 我认为 CDVViewController.m 文件中存在错误。由于你正在使用 PhoneGap 构建服务,我不知道是否可以进行编辑。 - Ross
@Ross 刚刚找到了解决方案。请参见下文。 - Prinzhorn
2个回答

4

嗯,对于PhoneGap Build可能会有所不同。在CDVViewController.m文件中,它显示NSNumber* bouncePreference = [self.settings objectForKey:@"UIWebViewBounce"];NSNumber* disallowOverscroll = [self.settings objectForKey:@"DisallowOverscroll"]; - 这个CDVViewController.m检查config.xml中的值并配置webView以允许/禁止overscroll。该文件的第323行查找UIWebViewBounce - Ross
1
据我所了解,PhoneGap构建服务并不支持所有的首选项。因此,DisallowOverscrollUIWebViewBounce都没有出现在实际打包的config.xml文件中。现在我的3gs上使用webviewbounce已经可以正常工作了。 - Prinzhorn

2

我正在使用PhoneGap 3.0.0版本

为了使其正常工作,我需要做两件事:

首先: 我在我的index.html中设置了这个:

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=medium-dpi" />

需要更改为:

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, target-densitydpi=medium-dpi" />

在设置设备高度时,我的100%高度考虑了状态栏。

然后我还需要将这一行添加到我的config.xml文件中:

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

希望这可以帮到你,
Ian

谢谢,这个对我很有用,因为我正在使用Phonegap 3.0+版本。但是这个在不做任何更改的情况下就对我起作用了,包括<meta name="viewport".../>。 - Anand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接