Adobe rekommenderar att du använder SPA Editor för projekt som kräver ramverksbaserad klientåtergivning för en sida (till exempel React). Läs mer.
Att skapa en mobilwebbplats liknar att skapa en standardwebbplats, eftersom det även handlar om att skapa mallar och komponenter. Mer information om hur du skapar mallar och komponenter finns på följande sidor: Mallar, Komponenteroch Komma igång med att utveckla AEM Sites. Den största skillnaden är att aktivera de inbyggda mobilfunktionerna i Adobe Experience Manager (AEM) på webbplatsen. Detta uppnås genom att skapa en mall som är beroende av mobilsidkomponenten.
Överväg att använda responsiv design, skapar en enda plats för flera skärmstorlekar.
Om du vill komma igång kan du titta på Webbplats för mobil demo inom detaljhandeln som finns i AEM.
Så här skapar du en mobilwebbplats:
Skapa sidkomponenten:
Ange sling:resourceSuperType
egenskap till wcm/mobile/components/page
På så sätt är komponenten beroende av den mobila sidkomponenten.
Skapa body.jsp
med projektspecifik logik.
Skapa sidmallen:
sling:resourceType
till den nya sidkomponenten.allowedPaths
-egenskap.Skapa designsidan för webbplatsen.
Skapa webbplatsens rotsida nedanför /content
nod:
cq:allowedTemplates
-egenskap.cq:designPath
-egenskap.I sidegenskaperna för platsens rotsida anger du enhetsgrupperna i Mobil -fliken.
Skapa webbplatssidorna med den nya mallen.
Komponenten för mobilsidan ( /libs/wcm/mobile/components/page
):
head.jsp
hämtar den den aktuella mobilenhetsgruppen från begäran och om en enhetsgrupp hittas använder gruppens drawHead()
-metod för att inkludera enhetsgruppens associerade emulatorinit-komponent (endast i författarläge) och enhetsgruppens återgivnings-CSS.Rotsidan för den mobila webbplatsen måste vara på nivå 1 i nodhierarkin och bör vara under noden /content.
Använd Multi Site Manager (MSM) för att skapa en mobil live kopia från en standardwebbplats. Standardwebbplatsen omvandlas automatiskt till en mobilwebbplats: den mobila webbplatsen har alla funktioner som finns på mobilsajterna (till exempel utgåva i en emulator) och kan hanteras synkroniserat med standardwebbplatsen. Se avsnittet Skapa en Live-kopia för olika kanaler på sidan Multi Site Manager.
Java™-paketen som innehåller mobilklasserna är:
The Webbplats för mobil demo inom detaljhandeln använder följande mobila komponenter som finns nedan /libs/foundation/components
:
Namn | Grupp | Egenskaper |
mobilefooter | dold | - sidfot |
mobileimage | Mobil | - baserat på bildstiftskomponenten - återger en bild om enheten är kapabel |
mobilelist | Mobil | - baserat på listgrundskomponenten - listitem_teaser.jsp återger en bild om enheten är kapabel |
mobilelogo | dold | - baserat på logotypens grundkomponent - återger en bild om enheten är kapabel |
mobilreferens | Mobil | - som liknar komponenten för referensstiftelsen - mappar en textimage-komponent till en mobilextimage en och en image-komponent till en mobilbild en |
mobiletextimage | Mobil | - baserat på komponenten textimage Foundation - återger en bild om enheten är kapabel |
mobiletopnav | dold | - baserat på den topnav Foundation-komponenten - återger bara text |
Det AEM mobilramverket gör det möjligt att utveckla komponenter som är känsliga för den enhet som skickar begäran. I följande kodexempel visas hur du använder det AEM Mobile API:t i en komponent-jsp och särskilt hur du gör det:
Hämta enheten från begäran:
Device device = slingRequest.adaptTo(Device.class);
Hämta enhetsgruppen:
DeviceGroup deviceGroup = device.getDeviceGroup();
Hämta enhetsgruppsfunktionerna:
Collection<DeviceCapability> capabilities = deviceGroup.getCapabilities();
Hämta enhetsattributen (nyckel/värden för rå kapacitet från WURFL-databasen):
Map<String,String> deviceAttributes = device.getAttributes();
Hämta enhetens användaragent:
String userAgent = device.getUserAgent();
Hämta enhetsgruppslistan (enhetsgrupper som tilldelats till webbplatsen av författaren) från den aktuella sidan:
DeviceGroupList deviceGroupList = currentPage.adaptTo(DeviceGroupList.class);
Kontrollera om enhetsgruppen stöder bilder
if (deviceGroup.hasCapability(DeviceCapability.CAPABILITY_IMAGES)) {
… ELLER
if MobileUtil.hasCapability(request, DeviceCapability.CAPABILITY_IMAGES) {
…
I en jsp, slingRequest
är tillgängligt via <sling:defineObjects>
tagg och currentPage
via <cq:defineObjects>
-tagg.
Emulatorbaserad redigering ger författare möjlighet att skapa innehållssidor som är avsedda för mobila klienter. Framtagning av mobilt innehåll följer samma princip för WYSIWYG-redigering på plats. För att författare ska kunna uppfatta sidutseendet på en mobil enhet redigeras en mobilinnehållssida med en enhetsemulator.
Emulatorer för mobila enheter är baserade på det generiska emulatorramverket. Mer information finns i Emulatorer.
Enhetsemulatorn visar den mobila enheten på sidan medan den vanliga redigeringen (parsys, components) sker på enhetens skärm. Enhetsemulatorn beror på de enhetsgrupper som är konfigurerade för platsen. Flera emulatorer kan tilldelas till en enhetsgrupp. Alla emulatorer är sedan tillgängliga på innehållssidan. Som standard visas den första emulatorn som tilldelats den första enhetsgruppen som tilldelats platsen. Emulatorerna kan bytas antingen via emulatorkarusellen högst upp på sidan eller via Sidekick-redigeringsknappen.
Skapa en emulator
Information om hur du skapar en emulator finns i Skapa en anpassad emulator för mobiler på den generiska Emulatorsidan.
De viktigaste egenskaperna hos emulatorer för mobila enheter
En enhetsgrupp består av en av flera emulatorer: konfigurationssidan för enhetsgruppen, till exempel /etc/mobile/groups/touch, innehåller emulators
egenskapen under jcr:content
nod.
Obs! Även om det är möjligt att samma emulator hör till flera enhetsgrupper så är det inte särskilt klokt.
Via enhetsgruppens konfigurationsdialogruta kan emulators
egenskapen ställs in med sökvägen för emulatorerna. Till exempel: /libs/wcm/mobile/components/emulators/iPhone4
.
Emulatorkomponenterna (till exempel /libs/wcm/mobile/components/emulators/iPhone4
) utöka den grundläggande mobilemulatorkomponenten ( /libs/wcm/mobile/components/emulators/base
).
Alla komponenter som utökar basmobilemulatorn är tillgängliga för val när en enhetsgrupp konfigureras. Anpassade emulatorer kan enkelt skapas eller utökas.
Vid begäran i redigeringsläge används emulatorimplementeringen för att återge sidan.
När sidmallen är beroende av den mobila sidkomponenten, integreras emulatorfunktionerna automatiskt på sidan (via head.jsp
för mobilsidkomponenten).
Mobila enhetsgrupper ger segmentering av mobila enheter baserat på enhetens funktioner. En enhetsgrupp innehåller den information som krävs för emulatorbaserad redigering på författarinstansen och för korrekt innehållsåtergivning på publiceringsinstansen: när författarna har lagt till innehåll på mobilsidan och publicerat det kan sidan begäras på publiceringsinstansen. I stället för emulatorns redigeringsvy återges innehållssidan med en av de konfigurerade enhetsgrupperna. Valet av enhetsgruppen görs baserat på mobilenhetsidentifiering. Den matchande enhetsgruppen tillhandahåller sedan nödvändig formatinformation.
Enhetsgrupper definieras som innehållssidor nedan /etc/mobile/devices
och använder Mobilenhetsgrupp mall. Enhetens gruppmall fungerar som en konfigurationsmall för enhetsgruppsdefinitioner i form av innehållssidor. Dess huvudsakliga egenskaper är:
/libs/wcm/mobile/templates/devicegroup
/etc/mobile/groups/*
wcm/mobile/components/devicegroup
När du skapar en mobilwebbplats måste du tilldela enhetsgrupper till webbplatsen. AEM innehåller tre enhetsgrupper beroende på enhetens HTML och JavaScript-återgivningsfunktioner:
Funktion telefoner för enheter som Sony Ericsson W800 med stöd för grundläggande HTML, men utan stöd för bilder och JavaScript.
Smart telefoner, för enheter som BlackBerry® med stöd för grundläggande HTML och bilder, men utan stöd för JavaScript.
Touch telefoner för enheter som iPad med fullt stöd för HTML, bilder, JavaScript och enhetsrotation.
Som emulatorer kan kopplas till en enhetsgrupp (se avsnittet Skapa en enhetsgrupp) kan författare välja mellan de emulatorer som är kopplade till enhetsgruppen när de tilldelar en enhetsgrupp till en webbplats.
Så här tilldelar du en enhetsgrupp till din plats:
Gå till Webbadministratör konsol.
Öppna rotsidan för din mobila webbplats nedan Webbplatser.
Öppna sidegenskaperna.
Välj Mobil tab:
När enhetsgrupperna har definierats för en plats, ärvs de av alla sidor på platsen.
Enhetsgruppsfilter definierar funktionsbaserade villkor för att avgöra om en enhet tillhör gruppen. När du skapar en enhetsgrupp kan du välja vilka filter som ska användas för att utvärdera enheter.
Vid körning när AEM tar emot en HTTP-begäran från en enhet, jämför varje filter som är kopplat till en grupp enhetsfunktionerna med specifika kriterier. Enheten anses tillhöra gruppen när den har alla funktioner som filtren kräver. Funktioner hämtas från WURFL™-databasen.
Enhetsgrupper kan använda noll eller flera filter för funktionsidentifiering. Ett filter kan också användas med flera enhetsgrupper. AEM innehåller ett standardfilter som avgör om enheten har de funktioner som är valda för en grupp:
Om enhetsgruppen inte använder ett filter är de valda funktionerna som är konfigurerade för gruppen de enda funktioner som en enhet behöver.
Mer information finns i Skapa enhetsgruppsfilter.
Skapa en enhetsgrupp när de grupper som AEM installerar inte uppfyller dina krav.
Gå till verktyg konsol.
Skapa en sida nedan verktyg > Mobil > Enhetsgrupper. I Skapa sida dialog:
Som Titel, ange Special Phones
.
Som Namn, ange special
.
Välj Mall för mobilenhetsgrupp.
Klicka Skapa.
Lägg till en static.css filen som innehåller formaten för enhetsgruppen under /etc/mobile/groups/special
nod.
Öppna Specialtelefoner sida.
Konfigurera enhetsgruppen genom att klicka på Redigera knapp bredvid Inställningar.
På Allmänt tab:
BlackBerryZ10
På Emulatorer tab:
På Filter tab:
Klicka på OK.
Dialogrutan för konfiguration av mobilenhetsgrupp ser ut så här:
Så som beskrivs ovan är det möjligt att koppla en anpassad CSS till en enhetsgruppssida, ungefär som CSS för en designsida. Den här CSS-koden används för att påverka enhetsgruppsspecifik återgivning av sidinnehållet vid författare och publicering. Den här CSS-koden inkluderas sedan automatiskt:
Använd filter och ett bibliotek med enhetsspecifikationer för att avgöra vilka funktioner den enhet som utför HTTP-begäran har.
Skapa ett enhetsgruppsfilter för att definiera en uppsättning krav för enhetsfunktioner. Skapa så många filter du behöver för att rikta in dig på de grupper av enhetsfunktioner som behövs.
Utforma dina filter så att du kan använda kombinationer av dem för att definiera grupper av funktioner. Vanligtvis finns det överlappande funktioner för olika enhetsgrupper. Därför kan du använda vissa filter med flera enhetsgruppsdefinitioner.
När du har skapat ett filter kan du använda det i gruppkonfigurationen.
Mer information finns på Skapa enhetsgruppsfilter.
AEM använder en trunkerad version av WURFL™ -databas för att fråga efter enhetsfunktioner, som skärmupplösning eller JavaScript-stöd, baserat på enhetens User-Agent.
XML-koden för WURFL™-databasen visas som noder nedan /var/mobile/devicespecs
genom att tolka wurfl.xml
fil på /libs/wcm/mobile/devicespecs/wurfl.xml.
Utökningen till noder sker första gången som cq-mobile-core
paketet har startats.
Enhetsfunktionerna lagras som nodegenskaper och noderna representerar enhetsmodeller. Du kan använda frågor för att hämta funktionerna för en enhet eller en användaragent.
I takt med att WURFL™-databasen utvecklas kan du behöva anpassa eller ersätta den. Du kan uppdatera databasen för mobila enheter på följande sätt:
När en enhet kommer åt din mobila webbplats, identifierar AEM enheten, mappar den till en enhetsgrupp enligt dess funktioner och skickar en vy över sidan som motsvarar enhetsgruppen. Den matchande enhetsgruppen tillhandahåller nödvändig formatinformation. Mappningarna kan testas på testsidan för Mobile User-Agent:
https://localhost:4502/etc/mobile/useragent-test.html
Den trunkerade WURFL™-databasen som installeras med AEM är en release som är före den 30 augusti 2011. Om din version av WURFL släpptes efter den 30 augusti 2011 kontrollerar du att din användning är förenlig med din licens.
Installera en WURFL™-databas:
/apps/wcm/mobile/devicespecs
wurfl.xml
.AEM tolkar automatiskt wurfl.xml
filen och uppdaterar noderna nedan /var/mobile/devicespecs
.
När den fullständiga WURFL™-databasen är aktiverad kan det ta några minuter att analysera och aktivera. Du kan se loggarna för förloppsinformation.
Lägg till en användaragent som ett reguljärt uttryck nedan /apps/wcm/mobile/devicespecs/wurfl/regexp för att peka på en befintlig WURFL™-enhetstyp.
I CRXDE Lite skapar du en nod under /apps/wcm/mobile/devicespecs/regexp, till exempel apple_ipad_ver1
.
Lägg till följande egenskaper i noden:
apple_ipad_ver1
Ovanstående konfiguration gör att enheter som User-Agent matchar det angivna reguljära uttrycket mappas till Apple_ipad_ver1 WURFL™-enhets-ID, om det finns.
I det här avsnittet beskrivs hur du använder enhetsidentifiering på klientsidan för AEM för att optimera sidåtergivning eller för att ge klienten alternativa webbplatsversioner.
AEM har stöd för enhetsidentifiering på klientsidan baserat på BrowserMap
. BrowserMap
levereras i AEM som ett klientbibliotek under /etc/clientlibs/browsermap
.
BrowserMap
innehåller tre strategier som du kan använda för att tillhandahålla en alternativ webbplats till en kund, som används i följande ordning:
Mer information om integrering av klientbibliotek finns i Använda HTML-bibliotek på klientsidan.
The PageVariantsProvider
OSGi-tjänsten kan generera alternativa länkar för platser som tillhör samma familj. Om du vill konfigurera webbplatser som ska beaktas av tjänsten kan du cq:siteVariant
noden måste läggas till i jcr:content
nod från platsens rot.
The cq:siteVariant
noden måste ha följande egenskaper:
cq:childNodesMapTo
- avgör vilket attribut i länkelementet som de underordnade noderna mappas till. Vi rekommenderar att du ordnar innehållet på din webbplats på ett sådant sätt att rotnodens underordnade noder representerar roten för en språkvariant av din globala webbplats (till exempel /content/mysite/en
, /content/mysite/de
), i vilket fall värdet på cq:childNodesMapTo
bör hreflang
;cq:variantDomain
- anger vad Externalizer
Domänen används för att generera sidvarianternas absoluta URL:er. Om värdet inte anges genereras sidvarianterna med relativa länkar.cq:variantFamily
- anger till vilken grupp av webbplatser denna webbplats tillhör; flera enhetsspecifika representationer av samma webbplats bör tillhöra samma familj,media
- lagrar värdena för länkelementets mediaattribut; du bör använda namnet på BrowserMap
registrerad DeviceGroups
så att BrowserMap
biblioteket kan automatiskt vidarebefordra klienterna till rätt variant av webbplatsen.När värdet för cq:variantDomain
egenskap för en cq:siteVariant
noden är inte tom, PageVariantsProvider
skapar absoluta länkar med det här värdet som en konfigurerad domän för Externalizer
service. Se till att konfigurera Externalizer
för att återspegla din konfiguration.
När du arbetar med AEM finns det flera metoder för att hantera konfigurationsinställningarna för sådana tjänster. Se Konfigurerar OSGi om du vill ha mer information och rekommenderade rutiner.
Om du inte vill använda alternativa länkar kan du konfigurera en global URL för varje DeviceGroup
. Adobe rekommenderar att du skapar ett eget klientbibliotek som bäddar in browsermap.standard
klientbiblioteket, men enhetsgrupperna definieras om.
BrowserMap är utformat på ett sådant sätt att definitioner för enhetsgrupper kan åsidosättas genom att en enhetsgrupp med samma namn skapas och läggs till i BrowserMap
-objekt från ditt anpassade klientbibliotek.
Mer information finns i Anpassad BrowserMap.
Om ingen av de tidigare funktionerna har använts för att ange en alternativ plats för BrowserMap
och sedan väljare som ska använda namnen på DeviceGroups
läggs till i URL
s, och i så fall bör du tillhandahålla dina egna servrar som hanterar förfrågningarna.
En enhetssurfning till exempel www.example.com/index.html
identifierad som smartphone
av BrowserMap vidarebefordras till www.example.com/index.smartphone.html.
Om du vill använda standardklientbiblioteket BrowserMap på en sida måste du inkludera /libs/wcm/core/browsermap/browsermap.jsp
en fil med cq:include
tagg på sidans head
-avsnitt.
<cq:include script="/libs/wcm/core/browsermap/browsermap.jsp" />
Förutom att lägga till BrowserMap
klientbibliotek i din JSP
-filer måste du också lägga till en cq:deviceIdentificationMode
Strängegenskap inställd på client-side
till jcr:content
noden nedanför webbplatsens rot.
Om du vill anpassa BrowserMap
- genom att åsidosätta DeviceGroups
eller lägga till fler avsökningar - skapa ett eget klientbibliotek där du bäddar in browsermap.standard
klientbibliotek.
Dessutom måste du manuellt anropa BrowserMap.forwardRequest()
i JavaScript
kod.
Mer information om integrering av klientbibliotek finns i Använda HTML-bibliotek på klientsidan.
När du har skapat en skräddarsydd BrowserMap
klientbiblioteket, Adobe föreslår följande tillvägagångssätt:
Skapa en browsermap.jsp
i ditt program
<%@include file="/libs/foundation/global.jsp" %>
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<%@ page import="
com.day.cq.wcm.api.variants.PageVariant,
com.day.cq.wcm.api.variants.PageVariantsProvider,
com.day.cq.wcm.api.devicedetection.DeviceIdentificationMode,
com.day.cq.wcm.api.WCMMode"
%>
<%
final PageVariantsProvider p = sling.getService(PageVariantsProvider.class);
if(p == null) {
throw new IllegalStateException("Missing PageVariantsProvider service");
}
for(PageVariant v : p.getVariants(currentPage, slingRequest)) {
final String curVar = v.getAttributes().get("data-current-variant");
String media = v.getAttributes().get("media");
if (media != null) {
media = media.replaceAll(" ", "");
}
%>
<link
rel="alternate"
data-cq-role="site.variant"
title="<%= xssAPI.encodeForHTMLAttr(v.getTitle()) %>"
hreflang="<%= xssAPI.encodeForHTMLAttr(v.getAttributes().get("hreflang")) %>"
media="<%= xssAPI.encodeForHTMLAttr(media) %>"
href="<%= xssAPI.getValidHref(v.getURL()) %>"
<% if(curVar != null) { %> data-current-variant="<%= curVar %>"<% } %>
/>
<%
}
Boolean browserMapEnabled = true;
final DeviceIdentificationMode dim = sling.getService(DeviceIdentificationMode.class);
String[] selectors = slingRequest.getRequestPathInfo().getSelectors();
boolean isPortletRequest = false;
for (int i = 0; i < selectors.length; i++) {
if ("portlet".equals(selectors[i])) {
isPortletRequest = true;
break;
}
}
if (isPortletRequest) {
log.debug("Request was made by a portlet container - BrowserMap will not be embedded");
} else {
final WCMMode wcmMode = WCMMode.fromRequest(slingRequest);
boolean shouldIncludeClientLib = false;
if (WCMMode.EDIT != wcmMode && WCMMode.PREVIEW != wcmMode && WCMMode.DESIGN != wcmMode) {
if (dim != null) {
final String mode = dim.getDeviceIdentificationModeForPage(currentPage);
shouldIncludeClientLib = DeviceIdentificationMode.CLIENT_SIDE.equals(mode);
if (shouldIncludeClientLib) {
browserMapEnabled = (Boolean) request.getAttribute("browsermap.enabled");
if (browserMapEnabled == null) {
browserMapEnabled = true;
}
}
}
}
%>
<c:if test="<%= !browserMapEnabled %>">
<meta name="browsermap.enabled" content="false">
</c:if>
<c:if test="<%= shouldIncludeClientLib %>">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<cq:includeClientLib categories="browsermap.custom"/>
</c:if>
<%
}
%>
Inkludera broswermap.jsp
i huvudsektionen.
<cq:include script="browsermap.jsp" />
Om du vill utesluta BrowserMap-biblioteket från vissa sidor där du inte behöver någon klientidentifiering kan du lägga till ett request-attribut:
<%
request.setAttribute("browsermap.enabled", false);
%>
Det här kommer att göra /libs/wcm/core/browsermap/browsermap.jsp
skript för att lägga till en meta-tagg på sidan som gör BrowserMap
att inte utföra någon identifiering:
<meta name="browsermap.enabled" content="false">
Skriptet BrowserMap dirigerar normalt alltid om besökarna till den lämpligaste versionen av webbplatsen, och dirigerar vanligtvis om besökarna till skrivbordet eller till den mobila webbplatsen vid behov.
Du kan tvinga enheten i en begäran att testa en specifik version av en webbplats genom att lägga till device
parametern till din URL. Följande URL återger mobilversionen av Geometrixx Outdoors webbplats.
https://localhost:4502/content/geometrixx-outdoors/en.html?wcmmode=disabled&device=smartphone
The wcmmode
parametern är inställd på disabled
för att simulera beteendet för en publiceringsinstans.
Det åsidosättande enhetsvärdet lagras i en cookie så att du kan bläddra på webbplatsen utan att lägga till device
parameter till varje URL
.
Du måste alltså ringa samma URL
med device
ange till browser
för att återgå till datorversionen av webbplatsen.
BrowserMap lagrar det åsidosättande enhetsvärdet i en cookie som kallas BMAP_device
. Om du tar bort den här cookie-filen kan du vara säker på att CQ fungerar med rätt version av webbplatsen enligt den aktuella enheten (till exempel skrivbordet eller mobilen).
AEM bearbetar en begäran från en mobil enhet som tillhör gruppen med pekenheter enligt följande:
En iPad skickar en begäran till den AEM publiceringsinstansen, till exempel https://localhost:4503/content/geometrixx_mobile/en/products.html
AEM avgör om webbplatsen för den begärda sidan är en mobilwebbplats (genom att kontrollera om sidan på första nivån är en sida /content/geometrixx_mobile
utökar mobilsidkomponenten). Om ja:
AEM söker upp enhetsfunktionerna baserat på användaragenten i begärandehuvudet.
AEM mappar enhetsfunktionerna till enhetsgruppen och anger touch
som enhetsgruppsväljare.
AEM dirigerar om begäran till https://localhost:4503/content/geometrixx_mobile/en/products.touch.html.
AEM skickar svaret till iPad:
products.touch.html
renderas på vanligt sätt och kan nås.Du kan hämta statistik om antalet förfrågningar som gjorts till AEM av mobila enheter. Antalet begäranden kan delas upp:
Så här visar du statistiken:
The Statistik ser ut så här:
The Statistik sidan skapas första gången en mobil enhet kommer åt AEM och identifieras. Den är inte tillgänglig tidigare.
Om du behöver generera en post i statistiken kan du göra så här:
https://localhost:4502/content/geometrixx_mobile/en/products.html?wcmmode=disabled
The Statistik sidan är nu tillgänglig.
Mobilsidor kan nås på Dispatcher, eftersom sidor som återges för en enhetsgrupp särskiljs i sidans URL av enhetsgruppsväljaren, till exempel /content/mobilepage.touch.html
. En begäran till en mobilsida utan väljare cachelagras aldrig, som i det här fallet utförs enhetsidentifieringen och dirigeras till den matchande enhetsgruppen (eller"nominatch" för den delen). En mobilsida som återges med en enhetsgruppsväljare bearbetas av länkomskrivaren, som skriver om alla länkar på sidan så att de även innehåller enhetsgruppsväljaren, vilket förhindrar att enhetsidentifieringen utförs på nytt för varje klick på en redan kvalificerad sida.
Därför kan du stöta på följande scenario:
Alice omdirigeras till coolpage.feature.html
, och skickar den URL:en till en kompis Bob som kommer åt den med en annan klient som finns i touch
enhetsgrupp.
If coolpage.feature.html
kommer från ett klientcache-minne, AEM har inte möjlighet att analysera begäran för att ta reda på att mobilväljaren inte matchar den nya användaragenten och Bob får fel representation.
Du kan lösa det genom att ta med ett enkelt markeringsgränssnitt på sidorna, där slutanvändarna kan åsidosätta enhetsgruppen som markerats av AEM. I exemplet ovan kan slutanvändaren växla till coolpage.touch.html
om de tycker att deras enhet är tillräckligt bra för det.