Question

Je teste un UIWebView avec un certain nombre de différents types de documents - .xlsx, .jpg, etc. - et il ouvre la plupart d'entre eux très bien. De temps en temps, ouvrir un fichier local et ce message apparaît en plein la vue Web:

Unable to Read Document
An error occurred while reading the document

Je ne suis pas concerné par « pourquoi » cette erreur se produit - il arrive, par exemple, quand je nourris UIWebView un fichier d'ordures (intentionnellement). Le problème est que je ne peux pas comprendre comment détecter « quand » cela se produit. Il ne justifie pas la webView: didFailLoadWithError , il ne déclenche pas NSException (via @try @catch ), et quand j'examiner le document webViewDidFinishLoad , webView.request.HTTPBody est nulle.

Quelqu'un sait comment détecter quand UIWebView ne peut pas afficher le contenu?

Était-ce utile?

La solution

just call uiwebview delegate method 

- (void)webViewDidStartLoad:(UIWebView *)webView
{

}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *html = [webView stringByEvaluatingJavaScriptFromString:
                      @"document.body.innerHTML"];
    if ([html rangeOfString:@"Unable to Read Document."].location == NSNotFound) {

       NSLog(@"NO Error");

    }
    else
    {
//        NSLog(@"File contains Error");
    }

}

Autres conseils

Si l'inspection du journal ne montre rien hors de l'ordinaire, l'exécuter sur le périphérique. Comme un peu d'aide, mon journal dit

Cannot find data converter callback for uti public.data
Failed to generate preview

ce qui veut dire que le simulateur est un échec. Après avoir été frustré par ce même problème, je suis passé par la certification finale et toute l'installation et le processus d'approvisionnement, et aussi confirmer que Word 97 et Pages / fichiers Pages.zip contenant du texte n'affichent en effet très bien sur le périphérique. RESOLU. Le simulateur lui-même est cassé, ce qui est très ... troublant, que cette petite note ne semble pas faire dans les notes de version, et complique également le développement d'un peu peu. Cependant, le travail est autour de sélectionner le périphérique dans Xcode et déployer dehors, et il devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top