C# 在MonoTouch中注册自定义NSURL协议

C# 在MonoTouch中注册自定义NSURL协议,c#,xamarin.ios,C#,Xamarin.ios,我正在使用MonoTouch构建一个iOS应用程序,并试图实现一个定制的NSURL协议 当我注册自己的协议实现时,出现以下错误: WebKit在中丢弃了未捕获的异常 webView:DecisionPolicyFornavigationAction:request:frame:decisionListener: 代表:*-canInitWithRequest:仅限 为抽象类定义。定义 -[Foo.NetworkServices.NetworkServices+TestProtocol canIn

我正在使用MonoTouch构建一个iOS应用程序,并试图实现一个定制的NSURL协议

当我注册自己的协议实现时,出现以下错误:

WebKit在中丢弃了未捕获的异常 webView:DecisionPolicyFornavigationAction:request:frame:decisionListener: 代表:*-canInitWithRequest:仅限 为抽象类定义。定义 -[Foo.NetworkServices.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)
    {
    }
}

MonoTouch中的NSURL协议支持目前已中断

它将在下一个测试版(MonoTouch 5.3.3)中修复。还提供了一个演示其工作原理的示例(但在MonoTouch 5.3.3发布之前,它显然不起作用)

如果有紧急情况,Xamarin通常会提供预览版本