recherche

Maison  >  Questions et réponses  >  le corps du texte

ios - Lors de la création d'un nouveau composant Web à l'aide du code WXWebComponent, le problème suivant se produit

J'ai utilisé le WXWebComponent代码,从新写了一个自己的WebComponent fourni par weex lui-même et ajouté une méthode pour intercepter les requêtes Url, l'exposant aux fichiers weex.

Description du problème

Chaque fois que je télécharge un fichier depuis myWebView拦截Url跳到一个weex文件,再次pop回来的时候,再次点击myWebView的时候,就没办法将callback事件返回给weex. Et le message d'erreur suivant apparaît

WeexDemo[23225:9905854] void SendDelegateMessage(NSInvocation *): delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode

Publiez une partie du code de ma webView pour intercepter l'URL

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (_startLoadEvent) {
        NSMutableDictionary<NSString *, id> *data = [NSMutableDictionary new];
        [data setObject:request.URL.absoluteString ?:@"" forKey:@"url"];
        [self fireEvent:@"pagestart" params:data];
    }
    
    NSString * urlAbsoluteString= [request.URL absoluteString];
    NSArray <NSString *>*schemes = self.schemesCallBacks.allKeys;
    for (NSString *scheme in schemes) {
        NSError *error = nil;
        NSRegularExpression *regExp = [NSRegularExpression regularExpressionWithPattern:scheme options:NSRegularExpressionCaseInsensitive error:&error];
        if (!error) {
            NSRange range = [regExp rangeOfFirstMatchInString:urlAbsoluteString options:NSMatchingReportProgress range:NSMakeRange(0, urlAbsoluteString.length)];
            if (range.location != NSNotFound) {
                WXCallback callBack = self.schemesCallBacks[scheme];
                callBack(@{@"url": [request.URL absoluteString]});
                return NO;
            }
        } else {
            WXLog(@"created regExp error:  %@", error);
        }
    }
    return YES;
}
phpcn_u1582phpcn_u15822728 Il y a quelques jours726

répondre à tous(1)je répondrai

  • 天蓬老师

    天蓬老师2017-05-31 10:34:17

    La valeur stockée dans self.schemesCallBacks est WXCallback ? Il est recommandé d'essayer plutôt WXKeepAliveCallback

    répondre
    0
  • Annulerrépondre