MonoTouch UIWebView和EvaluateJavascript [英] MonoTouch UIWebView and EvaluateJavascript
问题描述
我有一个应用程序正在处理以下环境:
I have an application working on the following envirnoment:
- Monotouch 2.1
- MonoDevelop 2.4 .2
- MacOS 10.6.8
- iOS SDK 4.3
- Monotouch 2.1
- MonoDevelop 2.4.2
- MacOS 10.6.8
- iOS SDK 4.3
使用MonoDevelop 2.8.8.4迁移到iOS 5.0 / 5.1和Monotouch 5.2.10的相同应用程序存在以下问题:当我单击按钮在UIWebView中导航时不起作用。
The same application, migrated to iOS 5.0/5.1 and Monotouch 5.2.10 with MonoDevelop 2.8.8.4 under, has the following problem: When i click a button to navigate in a UIWebView do not work.
代码是:(显然在Monotouch 2.1中相同)
Code is that:(obviously it's same in Monotouch 2.1)
public void ScrollToTop (object sender, EventArgs evt)
{
webView.EvaluateJavascript("window.scrollTo(0,0)");
}
我该怎么办?
求助(使用Jonathan.Peppers帮助):
SOLVED (with Jonathan.Peppers help):
public void ScrollToTop (object sender, EventArgs evt)
{
if((UIDevice.CurrentDevice.CheckVersion(5, 0)){
System.Drawing.PointF p = new System.Drawing.PointF(0, 0);
webView.ScrollView.SetContentOffset(p,true);
}
else{
webView.EvaluateJavascript("window.scrollTo(0,0)");
}
}
我已经这样做了因为4.3 webView.ScrollView.SetContentOffset使应用程序崩溃。
i have made in that way because on 4.3 webView.ScrollView.SetContentOffset make application crash.
推荐答案
试试这个:
string error = webView.EvaluateJavascript("try { window.scrollTo(0,0); } catch (e) { return e.message; }");
(仔细检查我的代码)
它笑你会得到一个更好的错误信息。告诉我们返回的字符串的值。
It should get you a better error message. Tell us the value of the string returned.
我怀疑问题不是MonoTouch,而是iOS5? Safari在iOS5,新的javascript引擎等方面发生了巨大的变化。
I suspect the issue isn't MonoTouch, but perhaps iOS5? Safari had drastic changes in iOS5, new javascript engine, etc.
这篇关于MonoTouch UIWebView和EvaluateJavascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!