我想在Xamarin项目中实现iOS private API。

有人可以解释一下,如何在Xamarin中实现以下 private API吗?

我认为我需要创建一个绑定项目,但无法使其正常工作。

在我的本机iOS项目中运行时,以下代码有效。

我的.h文件:

#import <Foundation/Foundation.h>

@interface NSURLRequest (IgnoreSSL)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host;

@end

我的.m文件:
#import "NSURLRequest+IgnoreSSL.h"

@interface NSURLRequest ()
@end

@implementation NSURLRequest (IgnoreSSL)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host
{
    // ignore certificate errors only for this domain
    return YES;
}

@end

最佳答案

您可以做的是在Objective-C中创建一个小型库,该库仅执行您在该库中所做的工作(覆盖NSURLRequest中的静态方法)并将其链接到您的应用程序。

另外,如果您想使用纯C#进行此操作,则可以尝试创建NSUrlRequest的子类,然后添加如下代码:

class MyUrlRequest : NSUrlRequest {
    // Provide any constructors that you need

    [Export ("allowsAnyHTTPSCertificateForHost:")]
    static bool Allow (string host) { return true; }
}

然后创建MyUrlRequest实例,而不是NSUrlRequest。

10-08 06:07