Lag intrikat formatert innhold for appen din ved å bruke UIWebView

Ved første øyekast kan UIWebView-klassen virke som noe du bare vil bruke når du legger inn nettbasert innhold i appen din. Det viser seg imidlertid at UIWebView er verdt å vurdere nesten når som helst du trenger for å vise formatert innhold. Avhengig av dine behov og ferdighetsnivå, er det ofte et mye enklere alternativ til UITextView og CoreText. I dette innlegget skal vi se på flere måter å bruke UIWebView for enkelt å vise både websider og formatert tekst.

Nytt prosjekt

Åpne Xcode, og velg Ny fra Fil-menyen og deretter Ny prosjekt. Et nytt arbeidsområdevindu vises, og du vil bli presentert med flere applikasjonsmaler du kan velge mellom.

På applikasjonen til venstre velger du Program fra iOS-delen. Velg program for enkeltvisning og klikk på Neste-knappen. ( Figur A )

Figur A

I neste rute skriver du inn WebView for produktnavnet og com.myappcompany som firmaidentifikator. (Du må gjerne bytte ut ditt eget produktnavn og firmanavn).

La klasseprefikset være som den er. Det skal være blankt - XYZ er bare et hint til et sted.

Forsikre deg om at bare Bruk automatisk referansetelling og bruk Storyboards er sjekket.

Sett Device Family til iPhone, og klikk Neste. ( Figur B )

Figur B

En ny rute vises der du spør hvor du vil lagre prosjektet. XCode oppretter en WebView-prosjektmappe i katalogen du velger.

Når prosjektet er opprettet, vil Xcode åpne et arbeidsvindu med det nye prosjektet.

Opprette brukergrensesnittet

Klikk på MainStoryboard.storyboard i Files and Groupes-ruten. Gå deretter til Objektbiblioteket som ligger på nedre høyre side av arbeidsområdet og drar en UIWebView til hovedvisningen slik at den fyller hele skjermen, slik at bare statuslinjen blir synlig. Plasser deretter et UIButton-objekt på nedre venstre hjørne av UIWebView. Dobbeltklikk på knappen og endre etiketten til "Tilbake". Figur C viser situasjonen så langt.

Figur C

Deretter klikker du på Assistant Editor øverst til høyre i Xcode-grensesnittet. ( Figur D )

Figur D

Assistent Editor vil vise ViewController.h i en tilstøtende rute som vist i figur E. Klikk på UIWebView for å velge den, trykk deretter på Kontroll-tasten og dra fra nettvisningen til rett under ordet "@ interface" i ViewController.h. Når du slipper fingeren fra musen, vises tilkoblingsdialogen. Skriv "myWebView" i feltet Navn og trykk Enter. Du har nå opprettet et utløp som heter myWebView og koblet det til UIWebView på storyboardet.

Figur E

Klikk på Standard Editor-knappen for å lukke Assistent Editor.

Legge til koden

Klikk på ViewController.m i ruten Filer og grupper. Endre viewDidLoad: som vist nedenfor, og legg til de fire andre metodene under den. Sørg for å ta med kommentarene ('//') som vist i viewDidLoad: Vi vil bare kjøre en av eksemplemetodene om gangen.

 - (ugyldig) viewDidLoad 
 { 
 super viewDidLoad; 
 self showWebURL; 
 // self showString; 
 // self showFile; 
 } 
 - (ugyldig) showWebURL 
 { 
 NSURL * url = NSURL alloc initWithString: @ "http://m.techrepublic.com/blog/ios-app-builder"; 
 NSURLRequest * request = NSURLRequest requestWithURL: url; 
 self.myWebView loadRequest: request; 
 } 
 - (ugyldig) showString 
 { 
 NSString * htmlString = @ ""; 
 htmlString = htmlString stringByAppendingString: @ "Hallo appbyggere! 

";
 htmlString = htmlString stringByAppendingString: @ "Alle string ting er mulig i en UIWebView"; 
 htmlString = htmlString stringByAppendingString: @ ""; 
 // UIWebView bruker baseURL til å finne stilark, bilder osv. Som du inkluderer i HTML-koden. 
 NSURL * bundleUrl = NSURL-filURLWithPath: NSBundle mainBundle bundlePath; 
 self.myWebView loadHTMLString: htmlString baseURL: bundleUrl; 
 } 
 - (ugyldig) showFile 
 { 
 NSURL * url = NSURL-filURLWithPath: NSBundle mainBundle pathForResource: @ "mypage" ofType: @ "html" isDirectory: NO; 
 NSURLRequest * request = NSURLRequest requestWithURL: url; 
 self.myWebView loadRequest: request; 
 } 
 - (IBAction) backButtonTapped: (id) avsender 
 { 
 self.myWebView goBack; 
 } 

Kabling av knappen

Før vi kjører appen, må vi koble tilbake-knappen til metoden backButtonTapped:. Klikk på MainStoryboard.storyboard, og klikk deretter på knappen og kontroll-dra til View Controller-objektet. Når du slipper musen, vises en pop-up som vist i figur F. Klikk på backButtonTapped: for å opprette forbindelse.

Figur F

Teknikk nr. 1 - Viser nettinnhold

Bygg og kjør appen. På vår første kjøring kaller vi showWebURL: -metoden, som viser iOS App Builder-nettstedet som vist i figur G. Dette er den klassiske måten å bruke UIWebView - å legge inn webinnhold i appen din. Prøv å klikke på en av artikkelkoblingene for å gå til en annen side.

Figur G

Som du ser, fungerer UIWebView omtrent som en mini-nettleser, bortsett fra at det ikke er navigasjonskontroller. Heldigvis har vi lagt til en av våre egne. Ved å klikke på Tilbake-knappen avbrytes goBack: -metoden på UIWebView, og akkurat som du forventer blir den forrige siden i nettleserhistorikken hentet. UIWebView har også en GoForward: -metode for å krysse sidehistorikken i retning fremover.

Teknikk nr. 1 - Viser rå HTML

UIWebView er også i stand til å godta strenginndata for visning. I showString: -metoden oppretter vi en enkel tekststreng med HTML-koder og sender den til UIWebView for visning. For å se dette i handling, endre viewDidLoad: som følger:

 - (ugyldig) viewDidLoad 
 { 
 super viewDidLoad; 
 self showString; 
 // self showFile; 
 } 
Bygg og kjør appen igjen. Legg merke til i figur H at ordet "streng" er i fet skrift akkurat som vi instruerte med koden. UIWebView vil til og med hedre eksterne stilark som er spesifisert ved hjelp av HTML-koden. Selv om dette kan virke som mye arbeid for å vise en enkel tekstlinje, kan det være et veldig kraftig verktøy når du må vise betydelige forhåndsformaterte tekststrenger fra en database, for eksempel et blogginnlegg.

Figur H

Teknikk nr. 1 - Vise en HTML-fil

UIWebView kan også vise lokale html-filer. La oss lage en nå. Velg Ny fra Filkoden-menyen, og velg deretter Fil. ( Figur I )

Figur I

Velg "Annet" under iOS-delen, klikk på den tomme malen, og klikk deretter Neste. Navn filen "mypage.html" på følgende Save-As-skjermbilde og klikk på Opprett. Vi har nå en tom fil klar for HTML-en. Klikk på mypage.html og legg til følgende kode:

 body {font-size: 22px; fargen rød;} 
 Alle fil ting er mulig i en UIWebView! 
 Gå tilbake til ViewController.m og endre viewDidLoad: en siste gang som vist nedenfor, og bygg og kjør deretter appen. Resultatene er vist i figur J. 
 - (ugyldig) viewDidLoad 
 { 
 super viewDidLoad; 
 self showFile; 
 } 

UIWebView hedrer igjen stylingen vår for å endre størrelse og farge på skriften.

Figur J

Bunnlinjen

Ved hjelp av denne filbaserte teknikken kan du lage intrikat formatert innhold ved hjelp av din favoritt HTML-redigerer og deretter slippe filene til prosjektet ditt for bruk av UIWebView. Hvis HTML-en refererer til bildefiler eller eksterne stilark, husk også å slippe filer inn i prosjektet ditt. Dette er en veldig enkel måte å legge skarpe tutorials, dokumentasjon eller annet innhold i appene dine uten å komme inn på kompleksiteten til CoreText.

Jeg oppfordrer deg til å besøke Apples utviklernettsted for å lære mer om UIWebView. Det er flere nyttige metoder du vil lære, inkludert et komplett sett med delegerte metoder som lar deg kontrollere UIWebViews oppførsel på en veldig finkornet måte.

Les også:

  • Forstå tilstandene og overgangene til en iOS-app
  • Komme i gang med iOS-visninger og visningskontrollere: Del 1
  • Komme i gang med iOS-visninger og visningskontrollere: Del 2

© Copyright 2021 | pepebotifarra.com