iBooks Author: Programmering af HTML-widgets

I iBooks Author er det muligt at oprette af HTML5-widgets til brug i bøger.

iBooks Author understøtter HTML5-widgets (med arkivendelsen .wdgt).

Hvis du vil programmere en HTML-widget til iBooks Author, skal du bruge et tekstredigeringsværktøj eller et program til programmering af webindhold for at kunne oprette følgende arkiver:

  • HTML-hovedarkiv: Arkivet udgør hoveddelen af widget'en. Det kan have et valgfrit navn, men arkivendelsen skal være ".html". Du kan indsætte CSS og JavaScript i HTML-hovedarkivet eller indsætte .css- og .js-arkiver i widget-pakken og sætte HTML-hovedarkivet til at indlæse dem. I disse arkiver er det muligt bruge alle de teknikker og fremgangsmåder, der normalt kan bruges til hjemmesider. Generelt bruges HTML til at fastlægge widget-strukturen, CSS til at skabe layoutet og JavaScript til at understøtte interaktivitet. 
  • Default.png: Det billede, der vises på siden, og som brugeren trykker på for at åbne din widget. Arkivnavnet skal være "Default.png," med stort "D". Den letteste måde at oprette Default.png på er at tage et skærmbillede af HTML-hovedarkivet, mens det kører i et program til programmering af webindhold eller i en browser. Når din widget er aktiv, får den samme størrelse som Default.png, medmindre du har angivet en anden størrelse i Info.plist.
  • Info.plist: Dette arkiv giver iBooks Author og iBooks de nødvendige oplysninger til at køre widget'en. Navnet skal være "Info.plist." Nedenfor ses yderligere oplysninger og et eksempel. 

Når du har oprettet de tre påkrævede arkiver (og eventuelle valgfrie arkiver som CSS og JavaScript), skal du samle dem i en widget-pakke:

  1. Åbn Finder, opret en mappe, og læg arkiverne i mappen.
  2. Omdøb mappen, og indsæt arkivendelsen .wdgt i mappenavnet. Dermed oprettes widget-pakken, og mappesymbolet ændres til et widget-symbol.

Widget'en er nu klar til at blive indsat i iBooks Author.

Noter

  • Hvis der i bogen er HTML-widgets, der indeholder arkiver med kontroltegn i arkivnavnet, kan bogen ikke publiceres i iBooks Store. Før widget-pakken oprettes, skal du sørge for, at der ikke er brugt kontroltegn i arkivnavnet på de arkiver, der er indeholdt i pakken. Undgå at anvende brugertilpassede mappesymboler.
  • Undgå desuden at medtage mapper med følgende navne i widget-pakken:
    • Resources/
    • Support Files/Resources/
    • Contents/Resources/
  • Hvis du udarbejder materiale til iPad og Mac-computere med Retina-skærm, skal du tage højde for følgende:
    • Følg standardprotokollen for oprettelse af websteder med Retina-grafik (2x) ved programmering af HTML-, CSS- og JavaScript-arkiver. 
    • Widget-pakken skal indeholde et Default@2x.png-arkiv, der skal være i dobbelt så høj opløsning som Default.png-arkivet. Arkivet kan ikke vises i iBooks Author, men det kan ses i iBooks på iPad og Mac-computeree med Retina-skærm. 
  • Hvis widget'en skal fylde hele skærmen, når man zoomer ind, skal Default.png være på 768 x 1024 pixel og Default@2x.png på 1536 x 2048 pixel. Hvis widget'en ikke skal fylde hele skærmen, skal du vælge den ønskede opløsning for Default.png (f.eks. 600 x 900) og lave Default@2x.png i dobbelt så høj opløsning.
  • Læs mere om optimering af bøger fra iBooks Author.

Info.plist 

I en almindelig widget indeholder Info.plist obligatoriske nøgler og valgfrie nøgler. Nøglerne er angivet på nedenstående liste sammen med definitioner og nogle eksempelværdier for en widget med navnet “Hello World.” 

CFBundleDevelopmentRegion English Valgfri. *En streng, der angiver pakkens oprindelige region. Er normalt modersmålet for den person, der har oprettet pakken. 
CFBundleDisplayName Hello World Obligatorisk. En streng, der indeholder det faktiske navn på widget'en, der skal vises i iBooks Author og iBooks.
CFBundleIdentifier com.apple.widget.HelloWorld Obligatorisk. En streng, der indeholder en entydig identifikation af widget'en i reverse domain-format.
CFBundleName Hello World Valgfri. En streng, der indeholder navnet på widget'en. Navnet skal svare til navnet på widget-pakken i Finder bortset fra arkivendelsen .wdgt.
CFBundleShortVersionString 1.0 Valgfri. En streng, der angiver widget'ens forkortede versionsnummer. Ofte det samme som CFBundleVersion.
CFBundleVersion 1.0 Valgfri. En streng, der angiver widget'ens versionsnummer.
Height 768 Valgfri. Et tal, der angiver widget'ens højde målt i pixel. Hvis der ikke angives et tal, bruges højden fra Default.png.
MainHTML HelloWorld.html Obligatorisk. En streng, der indeholder navnet på det HTML-arkiv, der udfører widget'en.
Width 1024 Valgfri. Et tal, der angiver widget'ens bredde målt i pixel. Hvis der ikke angives et tal, bruges bredden fra Default.png.
IBNotifiesOnReady <true/> Valgfri. Hvis nøglen sættes til "true", giver den iBooks besked om, hvornår der skal skiftes fra visning af Default.png-arkivet til visning af den kørende HTML-widget. 

 Hele Info.plist for en widget ser sådan ud: 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>	<key>CFBundleDevelopmentRegion</key>	<string>English</string>	<key>CFBundleDisplayName</key>	<string>Hello World</string>	<key>CFBundleIdentifier</key>	<string>com.apple.widget.HelloWorld</string>	<key>CFBundleName</key>	<string>Hello World</string>	<key>CFBundleShortVersionString</key>	<string>1.0</string>	<key>CFBundleVersion</key>	<string>1.0</string>	<key>Height</key>	<integer>768</integer>	<key>MainHTML</key>	<string>HelloWorld.html</string>	<key>Width</key>	<integer>1024</integer>	<key>IBNotifiesOnReady</key>	<true/></dict></plist>

Restriktioner og begrænsninger

Visse funktioner er ikke kompatible. Brug ikke følgende nøgler:

AllowFileAccessOutsideOfWidget Widgets i bøger, der er oprettet i iBooks Author, kan ikke anvende arkiver i det almindelige arkivsystem.
AllowFullAccess Kort navn for en liste over andre adgangsnøgler, hvoraf visse ikke er kompatible.
AllowInternetPlugins Internettilbehør, f.eks. Flash, kan ikke bruges i bøger, der er oprettet i iBooks Author. Film og lyd kan indsættes via HTML5-<video>- og -<lyd>elementerne.
Bemærk: Film og lyd i HTML-widgets er ikke DRM-beskyttede.
AllowJava Widgets i bøger, der er oprettet i iBooks Author, kan ikke have Java-indhold.
AllowSystem Widgets i bøger, der er oprettet i iBooks Author, kan ikke få adgang til systemkommandoer.
Tilbehør Widgets i bøger, der er oprettet i iBooks Author, kan ikke indeholde Cocoa-tilbehørskomponenten.

iBooks Author ignorerer følgende nøgler: 

CloseBoxInsetX Widgets i iBooks Author og iBooks kan ikke vise tætte dekorationer.
CloseBoxInsetY  

 

Skrifter Widgets i iBooks Author kan ikke anvende skriftpakker.

Krav til film og lyd

Det er ikke muligt at bruge medier med arkivendelserne ".m4v" og ".m4p". 

Det anbefales at bruge H.264-video i en MPEG-4-beholder med arkivendelsen ".mp4".

Ved lyd anbefales det at bruge AAC-lyd i en MPEG-4-beholder med arkivendelsen ".m4a".

Bemærk: Video- og lydmedier i HTML-widget-pakker er ikke DRM-beskyttede.

Bemærk: I nogle tilfælde kan video- og lydarkiver i HTML-widgets ikke afspilles i iBooks Author, men kun i iBooks. Hvis du ikke kan afspille et film- eller lydarkiv i en widget i iBooks Author, kan du prøve med eksempelvisning på iPad eller i OS X Mavericks. På den måde kan du få vist, hvordan arkivet afspilles i den færdige bog.

Lokalisering

Lokaliserede strenge og assets understøttes ikke af iBooks Author. Derfor skal tekst, der er synlig for brugeren, indsættes inline i målsproget.

Beskårede elementer

Hvis f.eks. et <video>-element ser ud til at være beskåret i den ene side, kan de skyldes, at den udvides for at udfylde et større område end det, der er synligt. Kontroller "width:auto" i #video-vælgeren i CSS, og vælg den faktiske opløsning. Hvis en widget f.eks. indeholder en video i opløsningen 960 x 540, skal du finde den pågældende vælger i CSS og manuelt angive de korrekte værdier for bredde og højde:

#video {	width: 960;	height: 540;}

Udvikling til både iOS og OS X Mavericks

I iOS og OS X bruges der grundlæggende forskellige inputtyper, så hvis du opretter en HTML-widget til iBooks Author, skal du sikre, at det er muligt både at trykke på skærmen og med musen, hvis du vil bruge et kontrolelement, der ikke håndteres af standardbevægelserne.

 

Åbning af en HTML-widget

Afhængigt af hvor kompliceret HTML-widget'en er, kan læserne opleve et blink under HTML-initialisering, når de åbner widget'en i iBooks. For at undgå dette blink skal du ændre widget'en, så den giver iBooks besked om, hvornår der skal skiftes fra visning af Default.png-arkivet til visning af den kørende HTML-widget.

Der er tre ændringer, der skal foretages, før denne ekstra funktionalitet kan indsættes:

  1. Indsæt et IBNotifiesOnReady-emne, som er indstillet til "true" i widget'ens info.plist, så iBooks ved, at denne widget giver besked, når den skifter til visning af den kørende HTML-widget:
    <key>IBNotifiesOnReady</key><true/>
  2. Indstil widget'en til at indlæse Apple JavaScript-biblioteket i HEAD-delen af HTML-arkivet:
    <script type="text/javascript" src="AppleClasses/AppleWidget.js"> </script>
    Bemærk: AppleWidget.js findes allerede på iPad, og derfor er det ikke nødvendigt at medtage den i widget-pakken.

  3. Indstil widget'en til at give iBooks besked, når HTML-initialiseringen er afsluttet, og iBooks kan skifte fra at vise Default.png-arkivet til at vise den kørende HTML-widget ved at kalde følgende (som indgår i HEAD-delen af HTML-arkivet i JavaScript):
    widget.notifyContentIsReady()

Vigtigt! Hvis du vælger at ændre widget'en for at undgå blinket, skal du sørge for at gennemføre alle ovenstående trin. Du skal gennemføre alle trinnene, hvis denne funktion skal fungere korrekt.

Om publicering på eksterne webtjenester

HTML-widgets kan kun publicere på eksterne webtjenester, hvis tjenesterne har implementeret de nødvendige CORS-headere (Cross-Origin Resource Sharing).

Udgivelsesdato: