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