gpt4 book ai didi

ios - 第二个 webview 中未使用自定义 NSURLProtocol

转载 作者:行者123 更新时间:2023-11-29 11:17:25 25 4
gpt4 key购买 nike

我已经将 NSURLProtocol 子类化并使用以下代码在 didFinishLaunchingWithOptions 中注册它:

+ (void) registerProtocol 
{
static BOOL registered = NO;

if (!registered)
{
[NSURLProtocol registerClass:[MyURLProtocol class]];
registered = YES;
}
}

对于我的应用程序(在主窗口中)中的第一个 UIWebView,方法 canInitWithRequest 被触发,我可以执行我的自定义代码。

但是我有第二个 UIWebView,它位于 UIViewController 内,它在应用程序中的某个点被推送(以模态方式呈现)。 canInitWithRequest 不会为第二个 UIWebView 调用,因此我无法执行我的自定义代码。在创建 UIWebView 的两个实例后注册协议(protocol)时,情况也是如此。

谁知道为什么?

[编辑]哦!我刚刚发现这只是在第二个 webview 中加载的 javascript 中的一个普通错误:(现在在两个 WebView 中都非常有效!

最佳答案

不确定这是否与您的情况和解决方案有关,但发布以供记录。经过多次试验和磨难后今天发现,如果您希望多次发送相同的 url,ajax 调用将消息发送到 NSURLProtocol 的子类拦截的 objective-c 应该将缓存设置为 false。像这样:

$.ajax({
url:"atavistcommand://" + name,
data:JSON.stringify(data),
type:"GET",
processData:false,
cache:false )};

如果 cache = true 则 objective-c 将永远不会收到同一 url 上的后续请求。

关于ios - 第二个 webview 中未使用自定义 NSURLProtocol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com