0

我发现UIWebView如果按钮是 asp.net ,嵌入式 's 不会导致回发LinkButton,但它们与Button's 一起工作正常。LinkButtonSafari 会导致's正常回发。

有什么解决方法吗?

代码片段:

vwWebView.LoadRequest (new NSUrlRequest (new NSUrl (url)));

(我们使用的是单点触控,但这似乎是一个 iOS 问题)

4

1 回答 1

1

事实证明,UIWebView 的默认用户代理使 IIS 不将 javascript 发送到内容项。解决方案是手动将 webview 的用户代理设置为移动 safari 的用户代理。

这是实现它的代码:

static public void SetUserAgent(UIWebView webview) {
    var agent = "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25";
    var webDocumentView = new NSObject(Messaging.IntPtr_objc_msgSend(webview.Handle,
                                                                     (new Selector("_documentView").Handle)));
    var webView = webDocumentView.GetNativeField("_webView");
    Messaging.void_objc_msgSend_IntPtr(webView.Handle, 
                                       (new Selector("setCustomUserAgent:")).Handle,                        
                                       (new NSString(agent)).Handle);
}

这篇文章提供了解决方案: http: //blog.reinforce-lab.com/2010/06/monotouchuiwebviewhowtochangeuseragent.html

以下帖子不起作用。它只对第一个请求进行裁剪,而不是对后续浏览进行裁剪: http ://monotouch.2284126.n4.nabble.com/seting-UIWebview-user-agent-objectiveC-question-td3807602.html

于 2012-10-16T19:25:13.360 回答