0

iOSデバイスでプロキシ情報を取得しようとしています。OS は、設定の辞書を取得する関数 CFNetworkCopySystemProxySettings() を簡単に使用できます。ホストとポートが提供されている場合、問題はありません。それぞれ kCFNetworkProxiesHTTPProxy キーと kCFNetworkProxiesHTTPPort キーを使用して辞書でアクセスできます。ただし、これらが提供されず、代わりに kCFNetworkProxiesProxyAutoConfigURLString キーの URL が提供される場合があります。今、ここで問題が発生しています...

そこで、期待どおりに JavaScript 関数を含むファイルをプルします。

function FindProxyForURL(url,host)

{
    if (isInNet(host, "10.xxx.xxx.xxx", "255.255.224.0"))        
    {                                               
    return "DIRECT";                                
    }
        if (isInNet(host, "10.xxx.xxx.xxx", "255.255.224.0"))  
    {                                               
    return "DIRECT";                                
    }
return "PROXY host:port";   
}

どのすべてが私に似合う..?

次に、関数を呼び出して戻り値を取得しようとしましたが、ここですべてがうまくいきません:(これが私の最近の試みです:

NSString *jsFunction = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; // jsFunction is the javascript function above
JSContext *context=  [[JSContext alloc] init];
[context evaluateScript:jsFunction];
JSValue *function = context[@"FindProxyForURL"];
JSValue *jsResult = [function callWithArguments:@[[JSValue valueWithObject:[NSString stringWithCppString:host] inContext:context], [JSValue valueWithObject:[NSString stringWithCppString:host] inContext:context]]];
NSString *result = [jsResult toString];

結果は常に未定義として返されます!!

数値をインクリメントするだけの PAC の代わりにいくつかのテスト関数を試してみましたが、それらは期待どおりに機能します。問題は、isInNet への呼び出しを導入したときに始まるようです。誰かに同様の問題がありましたか?isInNet は iOS でサポートされていませんか? 私は明らかに間違ったことをしていますか?

ご協力いただきありがとうございます。

4

1 に答える 1