UIWebView la progression du chargement et ajuster page web pour l'adapter à la page d'affichage?
Je suis en utilisant UIWebView de charger une page web.
Il y a 3 questions:
1.Est-il possible de suivre le pourcentage de progression lors de la UIWebView est le chargement de la page?
2.J'ai remarqué que quand Safari chargement d'une page web, l'URL textfield affiche un arrière-plan bleu de l'indicateur de progression pour dire à l'utilisateur le pourcentage de chargement d'une page web. Qu'est-ce que la technologie?
3.Je sais qu'il est bien scalesPageToFit
scalesPageToFit
Une valeur Booléenne déterminant si la page web échelle pour s'adapter à la vue et l'utilisateur peut modifier l'échelle.
J'essaie de régler ça OUI, mais on dirait qu'il n'est pas dans les API et l'une de mes applications s'est arrêté avec l'écran noir, je ne suis pas sûr de ce qui est mal?
OriginalL'auteur arachide | 2010-04-01
Vous devez vous connecter pour publier un commentaire.
Pour répondre #1)
Au lieu d'utiliser une UIWebView, vous pouvez tirer sur la page web vers le bas comme une NSData objet à l'aide d'un NSURLConnection. Lorsque vous obtenez la réponse initiale de votre demande de
le serveur doit renvoyer une valeur de "on attend de la taille du contenu" (ce qui devrait être inclus dans la réponse). Puis vous reçois la méthode suivante appelée à chaque fois que vous recevez des données:
Garder ajout de données à un NSMutableData objet. Ensuite, vous pouvez vérifier la taille de votre objet de données (NSMutableData.la longueur) à l'encontre de la réponse attendue de la taille.
Ensuite, vous pouvez mettre à jour une barre de progression avec un pourcentage! Lorsque
s'exécute, l'utilisation de vos données à appeler
et il se charge tout ce dont vous avez tiré vers le bas dans votre vue web.
En fait, toute l'affaire a déjà été discuté ici : stackoverflow.com/questions/1900151/... , le long avec une solution d'API.
OriginalL'auteur Pyro2927
Ré #3:
Vous pouvez essayer de préciser
scalePagesToFit
comme unYES
dans leviewDidLoad
cas de UIView qui contient votre webview, e.g:Pour les cas où cela ne fonctionne pas, reportez-vous à la StackOverflow question: UIWebView ne pas mettre à l'échelle le contenu pour l'adapter à où le demandeur (et par la suite, répondeur) a donné cette solution.
Apparemment, vous pouvez utiliser javascript pour redimensionner votre page pour l'adapter à l'navigateur:
OriginalL'auteur Jon Limjap
Vous pouvez essayer d'utiliser cette sous-classe de UIWebView qui utilise privé UIWebView méthodes - par conséquent, cette solution n'est pas à 100% AppStore coffre-fort (bien que certaines applications ne presque 100% l'utiliser: Facebook, Google app, ...).
https://github.com/petr-inmite/imtwebview
Malgré le fait qu'elle n'est pas 100% App Store coffre-fort, cela peut être utilisé pour Cydia de l'édition.
OriginalL'auteur joshis
Re #2: je crois Safari utilise une API privée d'appel sur UITextField (donc vous ne pouvez pas le faire si vous souhaitez soumettre à l'app store), mais vous devriez être capable de mettre en œuvre vous-même en mettant un champ de texte avec des pas de frontière sur le dessus de la barre de progression.
OriginalL'auteur Jarsen
Pour répondre à la question #1, il y a une solution qui est de l'App Store coffre-fort, et utilise une méthode similaire à la Webkit pour suivre les progrès.
https://github.com/otium/OTMWebView
OriginalL'auteur Otium