3

MonoTouchを使用してiOSアプリを構築し、カスタムNSUrlProtocolを実装しようとしています。

独自のプロトコル実装を登録すると、次のエラーが発生します。

WebKitは、webView:decidePolicyForNavigationAction:request:frame:decisionListener:デリゲート: * -canInitWithRequest:抽象クラスに対してのみ定義されたキャッチされなかった例外を破棄しました。定義-[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)
    {
    }
}
4

1 に答える 1

3

MonoTouch での NSUrlProtocol サポートは現在壊れています。

これは、次のベータ リリース (MonoTouch 5.3.3) で修正される予定です。どのように機能するかを示すサンプルも用意されています (ただし、MonoTouch 5.3.3 がリリースされるまで機能しないことは明らかです)。

Xamarin のサポートでは、緊急の問題である場合、通常はプレビュー ビルドを提供できます。

于 2012-04-24T10:39:14.617 に答える