我正在使用iOS构建一个MonoTouch应用程序,并试图实现一个自定义NSUrlProtocol。
当我注册自己的协议实现时,我会得到以下错误:
webView:decidePolicyForNavigationAction:request:frame:decisionListener:委托:* -canInitWithRequest:仅为抽象类定义了一个未定义的异常,WebKit放弃了该异常。定义-Foo.Network.NetworkServices+TestProtocol canInitWithRequest:!
对是什么原因有什么想法吗?
以下是代码:
//Registering the protocol
NSUrlProtocol.RegisterClass(new Class(typeof(TestProtocol)));
public class TestProtocol : NSUrlProtocol
{
public TestProtocol ()
{
this.Client = new TestProtocolClient();
}
public override bool CanInitWithRequest (NSUrlRequest request)
{
return true;
}
}
public class TestProtocolClient : NSUrlProtocolClient
{
public override void DataLoaded (NSUrlProtocol protocol, NSData data)
{
}
public override void FailedWithError (NSUrlProtocol protocol, NSError error)
{
}
public override void ReceivedResponse (NSUrlProtocol protocol, NSUrlResponse response, NSUrlCacheStoragePolicy policy)
{
}
public override void Redirected (NSUrlProtocol protocol, NSUrlRequest redirectedToEequest, NSUrlResponse redirectResponse)
{
}
public override void CachedResponseIsValid (NSUrlProtocol protocol, NSCachedUrlResponse cachedResponse)
{
}
public override void FinishedLoading (NSUrlProtocol protocol)
{
}
public override void ReceivedAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge)
{
}
public override void CancelledAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge)
{
}
}发布于 2012-04-24 10:39:14
NSUrlProtocol在MonoTouch中的支持目前已经失效。
它将在下一个测试版中修复(MonoTouch 5.3.3)。还有一个示例可以展示它是如何工作的(但在MonoTouch 5.3.3发布之前,它显然无法工作)。
如果是紧急事件,Xamarin的支持通常可以为您提供预览构建。
https://stackoverflow.com/questions/10295642
复制相似问题