Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Power Pages toetab ühe lehekülje rakenduse (SPA) koodi integreerimist, mis on loodud järgmise põlvkonna tehisintellekti abistatud tööriistadega, nagu GitHub Copilot. See võimalus võimaldab arendajatel tuua Power Pages'i kaasaegseid, komponentipõhiseid esipaneeli kogemusi, kasutades loomulikku keelt kodeerimisliidesena.
Tehisintellekti loodud koodi suunates, testides ja viimistledes saavad tegijad keskenduda korduvatelt rakendusülesannetelt kõrgema taseme orkestreerimisele. Selline lähenemine annab võimaluse intuitiivsemaks ja loovamaks arenguks, säilitades samas ettevõtte tasemel kvaliteedi ja standardid.
Selles artiklis selgitatakse, kuidas:
- Loo ja seadista Power Pages jaoks SPA projekt, kasutades Power Platform CLI (PAC CLI).
- Laadi ja laadi alla koodivarasid oma Power Pages'i saidile ja sealt välja.
- Looge turvaline ja hooldatav projektistruktuur.
- Õpi SPA-põhiste ja traditsiooniliste Power Pages rakenduste peamisi erinevusi.
Märkus.
- SPA sait on Power Pages'i sait, mis töötab täielikult kasutaja brauseris (kliendipoolne renderdamine). Erinevalt traditsioonilistest Power Pages saitidest haldatakse SPA saite ainult lähtekoodi ja käsurea liidese (CLI) tööriistade kaudu.
- Power Platform Git integratsioon ei ole Single-Page rakenduste (SPA) veebilehtedel Power Pages. aastal toetatud.
Eeltingimused
Enne alustamist veenduge, et teil on:
- Power Pages keskkond administraatori õigustega.
- Power Platform CLI (PAC CLI) versioon 1.44.x või uuem installitud ja autentitud.
- Power Pages'i sait versiooniga 9.7.4.x või uuem.
- Luba JavaScripti failide üleslaadimist Dataverse'i keskkondades.
- Kohalik Git-repositoorium, kus on sinu kohandatud front-end projekt, nagu React, Angular või Vue.
Luba JavaScripti failide üleslaadimist
Vaikimisi blokeerivad mõned Dataverse'i keskkonnad JavaScript (.js) failide üleslaadimise. Kui kohtate veateate "Import ebaõnnestus: manus ei ole kehtiv tüüp või liiga suur. Seda ei saa üles laadida ega alla laadida.", uuenda oma keskkonna seadeid, et lubada see failitüüp.
Keskkonna halduskeskuse sätete Power Platform kohandamiseks toimige järgmiselt.
- Logige sisse Power Platformi halduskeskusesse.
- Valige navigeerimispaanil Halda .
- Valige paanil Haldamine Keskkonnad .
- Valige keskkond.
- Valige käsuribal Sätted .
- Laiendage valikut Toode ja seejärel valige Privaatsus + turvalisus.
-
Blokeeritud manuste sektsioonis eemalda
jsfaililaiendite nimekirjast. - Valige käsk Salvesta.
SPA saidi loomine ja juurutamine
Power Pages SPA saite hallatakse PAC CLI käskude upload-code-site ja download-code-site abil. Pärast saidi üleslaadimist ilmub see
SPA saidi üleslaadimine
Kasuta käsku pac pages upload-code-site, et laadida üles oma kohalik allikas ja kompileeritud ressursid Power Pages keskkonda.
Süntaks
pac pages upload-code-site `
--rootPath <local-source-folder> `
[--compiledPath <build-output-folder>] `
[--siteName <site-display-name>]
Parameetrid
| Parameeter | Pseudonüüm | Nõutav | Kirjeldus |
|---|---|---|---|
--rootPath |
-rp |
Jah | Kohalik kaust, kus on sinu saidi lähtefailid |
--compiledPath |
-cp |
Nr | Tee kompileeritud varadeni, nagu React build |
--siteName |
-sn |
Nr | Sinu Power Pages saidi kuvanimi |
Näide
pac pages upload-code-site `
--rootPath "../your-project" `
--compiledPath "./build" `
--siteName "Contoso Code Site"
Kui teil pole olemasolevat projekti, proovige SPA saitide näidisrakendusi, kasutades Reacti, Angulari ja Vue'i.
Üleslaadimise parameetrite määratlemine powerpages.config.json
Kohanda käsu upload-code-site käitumist, lisades powerpages.config.json faili oma saidi juurkausta. Kui see fail on olemas, käivita upload-code-site ainult parameetriga --rootPath . Käsk loeb ülejäänud väärtused konfiguratsioonifailist. Kui sisestate nii käsurea argumendid kui ka konfiguratsiooniväärtused, saavad käsurea argumendid prioriteediks.
Konfiguratsiooniväljad
| Väli | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
siteName |
string | Jah | Power Pages'i saidi kuvanimi. |
compiledPath |
string | Jah | Tee kompileeritud väljundkaustani (näiteks Vite dist või React build kausta), suhteliselt .powerpages.config.json |
defaultLandingPage |
string | Jah | HTML-lehte, mida teenindatakse, kui saidi juur avatakse, suhteliselt compiledPath (tavaliselt index.html). |
bundleFilePatterns |
string[] | Nr | Nimekiri wildcard-mustritest, mis tuvastavad web-files saidi faile, mille CLI eemaldab enne uue versiooni üleslaadimist. Kasuta seda välja, et puhastada vananenud, sisuga räsitud komplekte, et vanad varad ei koguneks saidile. Vaata koodi jagamist ja komplektide puhastamist. |
includeSource |
kahendmuutuja | Nr | Kui true, laadib käsk üles sinu lähtekoodi lisaks kompileeritud varadele. Vaikeväärtus on false. |
sourceExcludePatterns |
string[] | Nr | Lähtefailide välistamise mustrid üleslaadimisest. Kehtib ainult siis, kui includeSource on true (näiteks vahelejätmise node_modules või kohalike keskkonnafailide puhul). |
Kõige täpsema ja up-tokuupäevaga väljaviite leiate powerpages.config.json skeemist. Lisa vastavuse $schema omadus oma konfiguratsioonifaili, et võimaldada valideerimist ja automaatset täiendust JSON skeemi toetavates redaktorites.
Näide powerpages.config.json
{
"$schema": "https://www.schemastore.org/powerpages.config.json",
"siteName": "Contoso Bank",
"compiledPath": "dist",
"defaultLandingPage": "index.html",
"bundleFilePatterns": [
"index-*.js",
"index-*.css"
]
}
SPA saidi allalaadimine
Kasutage käsku pac pages download-code-site , et laadida olemasoleva saidi kood redigeerimise või varundamise eesmärgil kohalikku kataloogi.
Süntaks
pac pages download-code-site `
[--environment <env-url-or-guid>] `
--path <local-target-folder> `
--webSiteId <site-guid> `
[--overwrite]
Parameetrid
| Parameeter | Pseudonüüm | Nõutav | Kirjeldus |
|---|---|---|---|
--environment |
-env |
Nr | Dataverse keskkond (GUID või täielik URL). Vaikimisi on teie aktiivne autentimisprofiil |
--path |
-p |
Jah | Kohalik kataloog saidikoodi allalaadimiseks |
--webSiteId |
-id |
Jah | Power Pages SPA saidi veebilehe GUID |
--overwrite |
-o |
Nr | Sihtkataloogis olemasolevate failide ülekirjutamine, kui need on olemas |
Näide
pac pages download-code-site `
--environment "https://contoso.crm.dynamics.com" `
--path "./downloaded-site" `
--webSiteId "11112222-bbbb-3333-cccc-4444dddd5555" `
--overwrite
Saidi aktiveerimine ja testimine
- Mine Power Pages.
- Valige Passiivsed saidid, otsige üles oma sait ja valige Aktiveeri uuesti.
- Kui sait on aktiivne, minge juurutamise kontrollimiseks oma saidi URL-ile.
Näpunäide
Kõik hilisemad upload-code-site käsud värskendavad aktiivset saiti automaatselt.
Projekti struktuur ja konfiguratsioon
Ühtne projektipaigutus aitab tagada õige üleslaadimiskäitumise.
/your-project
│
├─ src/ ← Your source code, like React components
├─ build/ ← Compiled assets, output of the `npm run build` command
├─ powerpages.config.json ← Optional CLI configuration file
└─ README.md
Kasutage valikulist powerpages.config.json faili, et kohandada upload-code-site käsu toimimist.
Koodi jagamine ja komplektide puhastamine
Kui üheleheküljeline rakendus kasvab, muutub üks JavaScripti komplekt suureks ja aeglaseks laadimiseks. Tänapäevased järgutööriistad lahendavad selle koodi tükeldamisega seotud probleemi. See tehnika tükeldab rakenduse väiksemateks osadeks , mille brauser nõudmisel alla laadib (näiteks ainult siis, kui kasutaja liigub kindlale marsruudile). Iga plokk saadakse välja koos faili nimes oleva sisu räsiga , näiteks Dashboard-BSbmIXoe.js, nii et brauserid saavad seda pikka aega vahemällu salvestada ja uuesti alla laadida alles siis, kui sisu muutub.
Koodi jagamine toob kaasa juurutamise kaalutluse, mis on ainulaadne Power Pages SPA saitidele: kuna iga versioon toodab uusi räsitud failinimesid, jätab korduv upload-code-site käivitamine vanad räsitud failid saidile maha. Paljude paigutuste jooksul kogunevad need orvuks jäänud tükid saidi web-files. Väli bundleFilePatternspowerpages.config.json on selleks, et neid puhastada.
Luba koodi jagamine
Koodi jagamine toimub sinu esipaneeli ehitustööriista poolt, mitte Power Pages'i poolt, seega sõltub lähenemine raamistikust ja bundlerist, mida kasutad. Kõige tavalisem tehnika on laadida rakenduse osi dünaamiliste importidega, mida sageli rakendatakse marsruudi või vaate tasandil, nii et iga sektsioon laaditakse alla ainult siis, kui kasutaja sinna navigeerib (laisk laadimine).
Bundlerid nagu Vite, webpack ja esbuild saavad samuti mooduleid selgelt nimetatud plokkideks grupeerida. Täpse konfiguratsiooni leiate oma raamistiku ja bundleri dokumentatsioonist.
dist/assets/
├─ index-BJltBIP-.js ← app entry
├─ index-DMwMk7hv.css ← styles
├─ Dashboard-BSbmIXoe.js ← lazy route chunk
├─ InvoiceList-DwjrGrAI.js ← lazy route chunk
└─ InvoiceDetail-D3DVGkeM.js← lazy route chunk
Ükskõik, millise lähenemise valid, tulemus on sama ja just see osa on juurutamise jaoks oluline: build kiirgab mitu väljundfaili, millest igaühel on nimes sisu räsi. Kuna need räsid muutuvad iga faili sisu muutudes, annab iga ehitus erineva failinimede komplekti. Järgmised osad selgitavad, kuidas hoida oma Dataverse'i keskkondi puhtana, kui nimed muutuvad.
Kuidas upload-code-site koristada vananenud kimbud
Enne kompileeritud varade üleslaadimist upload-code-site kustuta kõik saidi web-files failid, mis vastavad jokker-mustrile , bundleFilePatternsseejärel laadid üles praeguse versiooni. See kustuta ja siis üleslaadimine hoiab paigaldatud failikomplekti identsena sinu viimase kompileeritud väljundiga, selle asemel et iga ehitus eelmise peale kihistada.
Et puhastus toimiks, peavad wildcard-mustrid bundleFilePatterns vastama sinu ehitise väljastatud failinimedele. Nende täpseks hoidmiseks on kaks võimalust, sõltuvalt sellest, kuidas su ehitustööriist faile nimetab.
Variant 1: Loetle otse wildcard-mustrid
Paljud ehitustööriistad hoiavad stabiilset nime eesliitet ja muudavad ainult sisu räsi, näiteks index-[hash].js. Kui su väljundfailide nimed järgivad sellist etteaimatavat mustrit, pane iga faili jaoks jokker-muster .bundleFilePatterns Lisatööriistu pole vaja:
{
"$schema": "https://www.schemastore.org/powerpages.config.json",
"siteName": "Contoso Bank",
"compiledPath": "dist",
"defaultLandingPage": "index.html",
"bundleFilePatterns": [
"index-*.js",
"index-*.css"
]
}
Wildcard-muster, näiteks index-*.js sobib see fail iga ehituse puhul, sõltumata räsist. Lisa iga väljundfaili kohta üks kirje ja lisa uus muster iga kord, kui su ehitus hakkab uut väljundfaili tootma.
Variant 2: Genereeri wildcard-mustrid post-build skriptiga
Kasuta seda lähenemist, kui väljundfailide nimed ei järgi ennustatavat mustrit või kui rakendus toodab palju faile, mille nimed muutuvad, kui lisad ja eemaldad marsruute, mis muudab käsitsi hooldatava nimekirja vigadele vastuvõtlikuks. Lühike skript, mis jookseb pärast ehitust, skaneerib kompileeritud väljundi ja kirjutab bundleFilePatterns ümber iga emissioonifaili jaoks jokker-mustriga. Näiteks, kui ehitustööriist nimetab faile kui [name]-[hash].[ext], siis skript taandub Dashboard-BSbmIXoe.js mustriks Dashboard-*.js.
scripts/postbuild.js:
#!/usr/bin/env node
/**
* Post-build script: scans dist/assets/ and updates powerpages.config.json
* with bundleFilePatterns that match all Vite-generated chunks.
*
* This ensures `pac pages upload-code-site` cleans up old hashed bundles
* on each deploy instead of accumulating stale files.
*
* Usage: node scripts/postbuild.js
* Or via npm: "postbuild": "node scripts/postbuild.js" in package.json
*/
import { readdirSync, readFileSync, writeFileSync } from 'fs'
import { join } from 'path'
const ROOT = join(import.meta.dirname, '..')
const DIST_ASSETS = join(ROOT, 'dist', 'assets')
const CONFIG_PATH = join(ROOT, 'powerpages.config.json')
// Vite output format: [name]-[hash].[ext]
// We want to extract "name" and "ext" to produce "name-*.ext" patterns
const HASH_PATTERN = /^(.+)-[A-Za-z0-9_-]{6,12}\.(js|css)$/
try {
const files = readdirSync(DIST_ASSETS)
const patternSet = new Set()
for (const file of files) {
const match = file.match(HASH_PATTERN)
if (match) {
const [, baseName, ext] = match
patternSet.add(`${baseName}-*.${ext}`)
}
}
const patterns = [...patternSet].sort()
if (patterns.length === 0) {
console.log('No hashed bundles found in dist/assets/ — skipping config update.')
process.exit(0)
}
// Read current config
const config = JSON.parse(readFileSync(CONFIG_PATH, 'utf-8'))
const oldPatterns = config.bundleFilePatterns || []
// Check if update is needed
const oldSet = new Set(oldPatterns)
const newSet = new Set(patterns)
const changed = oldSet.size !== newSet.size || [...newSet].some(p => !oldSet.has(p))
if (!changed) {
console.log(`bundleFilePatterns already up-to-date (${patterns.length} patterns).`)
process.exit(0)
}
// Update config
config.bundleFilePatterns = patterns
writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8')
console.log(`Updated powerpages.config.json with ${patterns.length} bundle patterns:`)
for (const p of patterns) {
console.log(` ${p}`)
}
} catch (err) {
console.error('postbuild error:', err.message)
process.exit(1)
}
Ühenda skript oma ehitusega nii, et see jookseks alati pärast bundlerit:
{
"scripts": {
"build": "tsc -b && vite build && node scripts/postbuild.js"
}
}
Nüüd on paigaldus kahe käsuga ja sait ei kogune kunagi orvuks jäänud tükke:
npm run build
pac pages upload-code-site --rootPath .
Pärast ehitust peegeldab powerpages.config.json täpseid praeguseid kimpe, näiteks:
{
"$schema": "https://www.schemastore.org/powerpages.config.json",
"siteName": "Contoso Bank",
"compiledPath": "dist",
"defaultLandingPage": "index.html",
"bundleFilePatterns": [
"Dashboard-*.js",
"InvoiceDetail-*.js",
"InvoiceList-*.js",
"index-*.css",
"index-*.js"
]
}
Autentimine ja autoriseerimine
Power Pages SPA saidid kasutavad sama turvamudelit nagu traditsioonilised Power Pages saidid.
Identiteedipakkujate konfigureerimine
- Mine Power Pages.
- Otsige üles oma sait ja valige Redigeeri.
- Valige Turbeidentiteedi>pakkujad.
- Lisa või seadista identiteedipakkujad, nagu Microsoft Entra ID.
- Igal uuel saidil on automaatselt vaikimisi Microsoft Entra ID pakkuja.
Juurdepääs kasutajakontekstile koodis
Hankige kliendi autentimise metaandmed:
Asutuse URL:
Microsoft Entra ID autoriteet või sisselogimise URL on:
https://login.windows.net/<tenantId>Leia Authority URL teiste konfigureeritud identiteedipakkujate kohta, minnes Power Pages>
<your site>>Security>Identity providers> seadistusseadetesse.Kasutaja andmed:
window["Microsoft"].Dynamic365.Portal.User
Proovi React voog
import { IconButton, Tooltip } from '@mui/material';
import {
Login,
Logout
} from '@mui/icons-material';
import React from 'react';
export const AuthButton = () => {
const username = (window as any)["Microsoft"]?.Dynamic365?.Portal?.User?.userName ?? "";
const firstName = (window as any)["Microsoft"]?.Dynamic365?.Portal?.User?.firstName ?? "";
const lastName = (window as any)["Microsoft"]?.Dynamic365?.Portal?.User?.lastName ?? "";
const tenantId = (window as any)["Microsoft"]?.Dynamic365?.Portal?.tenant ?? "";
const isAuthenticated = username !== "";
const [token, setToken] = React.useState<string>("");
React.useEffect(() => {
const fetchAntiForgeryToken = async (): Promise<string> => {
try {
const tokenEndpoint = "/_layout/tokenhtml";
const response = await fetch(tokenEndpoint, {});
if (response.status !== 200) {
throw new Error(`Failed to fetch token: ${response.status}`);
}
const tokenResponse = await response.text();
const valueString = 'value="';
const terminalString = '" />';
const valueIndex = tokenResponse.indexOf(valueString);
if (valueIndex === -1) {
throw new Error('Token not found in response');
}
const requestVerificationToken = tokenResponse.substring(
valueIndex + valueString.length,
tokenResponse.indexOf(terminalString, valueIndex)
);
return requestVerificationToken || '';
} catch (error) {
console.warn('[Impersonation] Failed to fetch anti-forgery token:', error);
return '';
}
};
const getToken = async () => {
try {
const token = await fetchAntiForgeryToken();
setToken(token);
} catch (error) {
console.error('Error fetching token:', error);
}
};
getToken();
}, []);
return (
<div className="flex items-center gap-4">
{isAuthenticated ? (
<>
<span className="text-sm">Welcome {firstName + " " + lastName}</span>
<Tooltip title="Logout">
<IconButton color="primary" onClick={() => window.location.href = "/Account/Login/LogOff?returnUrl=%2F"}>
<Logout />
</IconButton>
</Tooltip>
</>
) : (
<form action="/Account/Login/ExternalLogin" method="post">
<input name="__RequestVerificationToken" type="hidden" value={token} />
<Tooltip title="Login">
<IconButton name="provider" type="submit" color="primary" value={`https://login.windows.net/${tenantId}/`}>
<Login />
</IconButton>
</Tooltip>
</form>
)}
</div>
);
};
Kasuta Power Pages veebiliidesid
Arendajad saavad kasutada Power Pages veebi API-sid sisu laadimiseks kasutajaliidesesse või kirjete loomiseks, uuendamiseks ja kustutamiseks. Enne nende API-de kasutamist veendu, et vajalikud veebipõhised API-d on lubatud ning sobivad tabeli õigused ja veebirollid on korrektselt seadistatud.
// Create query to get all cards from Dataverse
const fetchCards = async () => {
const response = await fetch("/_api/cr7ae_creditcardses");
const data = await response.json();
const cards = data.value;
const returnData = [];
// Loop through the cards and get the name and id of each card
for (let i = 0; i < cards.length; i++) {
const card = cards[i];
const cardName = card.cr7ae_name;
const cardId = card.cr7ae_creditcardsid;
const features = card.cr7ae_features
?.split(',')
.map((feature: string) => feature.trim());
const type = card.cr7ae_type;
const image = card.cr7ae_image;
const category = card.cr7ae_category
?.split(',')
.map((cat: string) => cat.trim());
// ...additional processing/pushing to returnData...
}
return returnData;
};
Seadista kohalik arendus, võimaldades veebipõhised API kõned localhostilt Microsoft Entra ID autentimise abil
Arendajad vajavad rakenduste loomisel kiiremaid iteratsioonitsükleid, kohalikku silumist ja kuumlaadimise võimalusi. SPA toetab neid töövooge, võimaldades turvalisi veebipõhiseid API kõnesid localhost kaudu, kasutades Microsoft Entra ID (Azure AD) v1 autentimist.
See seadistus võimaldab teil teha järgmist.
- Käivitage oma rakendus kohalikult täieliku autentimise toega.
- Kasutage kaasaegseid arendustööriistu, nagu Vite, kuumaks uuesti laadimiseks ja kiireks tagasisideks.
- Väldi CORS-i probleeme Power Pages'i veebiliideste kutsumisel.
- Kiirendage arendust ilma portaalis muudatusi juurutamata.
See konfiguratsioon võimaldab SPA-le produktiivset kohalikku arenduskogemust, nii et arendajad saavad kiiresti ehitada, testida ja iteratiivselt arendada täieliku API ligipääsu ja autentimise toega.
Oluline
- Kasuta autentimiseks ainult Microsoft Entra v1 lõpp-punkte.
- Esitaja autentimist toetatakse ainult portaali versioonides 9.7.6.6 või uuemates versioonides.
- Rakendage neid sätteid ainult arenduskeskkondades.
Konfiguratsiooni etapid
SPA autentimise lubamine
- Azure portaalis ava Microsoft Entra rakendus, mis on sinu portaalile registreeritud.
- Lubage ühelehelise rakenduse (SPA) autentimine.
- Lisa
localhostsuunamiseks URI, kasutades üheleheküljelist rakendusplatvormi konfiguratsiooni. Lisateabe saamiseks vaata "Kuidas lisada ümbersuunamise URI oma rakendusse".-
Ümbersuunamise URI:
http://localhost:<port>/.
-
Ümbersuunamise URI:
Saidi sätete lisamine
- Lisa need saidi seaded Power Pages:
Authentication/BearerAuthentication/Enabled = true Authentication/BearerAuthentication/Protocol = OpenIdConnect Authentication/BearerAuthentication/Provider = AzureADKasuta ADAL.js autentimiseks
- Rakenda kliendipoolne autentimine, kasutades ADAL.js.
Märkus.
MSAL.js ei ühildu, sest Power Pages kasutab Microsoft Entra v1 lõpp-punkte, samas kui MSAL kasutab v2. Väljaandja vorming on versiooniti erinev.
Autoriseerimispäise lisamine
- Lisage see päis kõigisse veebi API päringutesse.
Authorization: Bearer <id_token>Saidi nähtavuse määramine avalikuks
- See säte võimaldab
localhostsaidile arenduse ja testimise eesmärgil juurde pääseda.
- See säte võimaldab
Arenduspuhverserveri konfigureerimine
- Kui kasutad Vite'i, lisa see kood,
vite.config.jset vältida CORS-i probleeme:
export default defineConfig({ plugins: [react()], server: { proxy: { '/_api': { target: 'https://site-foo.powerappsportals.com', changeOrigin: true, secure: true } } } });- Kui kasutad Vite'i, lisa see kood,
Erinevused olemasolevatest Power Pages saitidest
Järgmine tabel võtab kokku peamised erinevused selle funktsiooniga loodud SPA saitide ja traditsiooniliste Power Pages saitide vahel:
| Funktsioon | SPA saidi käitumine |
|---|---|
| Serveripoolne värskendamine | Tagastab alati saidi juurlehe ning kliendipoolne ruuter renderdab alammarsruute. |
| Marsruudi konfliktid | Kliendipoolsed marsruudid on ülimuslikud ja kõva värskendus langeb tagasi juure. |
| Lehe tööruum | Lehtede tööruumi ei toetata. Kasutage kliendi marsruutimist ja kliendi saidi lehti. Lehetaseme turvalisuse tagamiseks kontrollige määratud veebirolle globaalse kasutajaobjektiga ja renderdage kasutajaliides tingimuslikult. |
| Stiili tööruum | Stiili tööruumiga kujundamist ei toetata. Kasuta oma raamistiku stiili, näiteks CSS, CSS-in-JSvõi utiliitklassid. |
| Lokaliseerimine | Ühe keele tugi. Rakendage kliendipoolset ressursside laadimist. |
| Vedel mall | Liquidi koodi ja Liquidi malle ei toetata. Andmetele pääse ligi oma raamistiku mallimootori ja veebi API-de abil. |
KKK
Millist tuge saab ühik- ja integratsioonitestimiseks?
Praegu puudub sisseehitatud tugi ühik- ja integratsioonitestimiseks. Tegijad peaksid need testid kirjutama ja käivitama kohapeal või oma CI/CD torujuhtmetes.
Kas WebAssembly’i Power Fx abil on integratsiooni tugi?
Seda võimalust praegu ei toetata.
Kas lähtekood on Power Pages'is saadaval?
Praegu saavad loojad luua veebisaite TypeScripti või GitHub Copilot Agenti abil. Kompileeritud JavaScripti ja CSS failid on ligipääsetavad ning neid saab redigeerida Visual Studio Code'is. HTML-failide otsest ja ulatuslikku redigeerimist aga praegu ei toetata.
Kas ma saan selle funktsiooni abil luua komponendi väliselt ja tuua selle Power Pages'i saidile?
Ei, sa ei saa selle funktsiooni abil tuua väljastpoolt genereeritud komponenti olemasolevale Power Pages'i saidile.
Kas ma saan lisada valmiskomponente, nagu loendid ja vormid?
Valmiskomponentide (nt loendite ja vormide) lisamist praegu ei toetata. Kuid kohandatud vorme ja loendeid saab luua Reacti raamistiku ja veebi API-de abil.
Kas spa-saiti saab PWA-na lubada tööruumi häälestamise kaudu?
Nr SPA-saidid ei toeta tööruumi häälestamiselprogressiivse veebirakenduse (PWA) sätet. See piirang tähendab, et te ei saa kasutada jaotist Mobile saidi PWA-na lubamiseks. PWA funktsioonide (nt installitavate rakenduste ja ühenduseta lehtede) lisamiseks rakendage need oma raamistikukoodis. Näiteks saate lisada veebirakenduse manifesti ja hooldustöötaja.
Kuidas allika juhtimine töötab?
Arendajad saavad allika juhtimiseks kasutada Power Platform Giti integratsiooni. Hoidlasse lisatakse aga ainult kompileeritud veebifailid, mitte täielik lähtekood.
Kas need saidid toetavad SEO-d?
Kuna SPA saidid on üles ehitatud Reacti raamistikuga ja kasutavad kliendipoolset renderdamist, on SEO tugi piiratud.
Millist Power Pages'i turva- ja haldustuge pakuvad SPA saidid?
Power Pages rakendab tabeli õigusi ja turvalisuse veebirolle Web API kutsetel, tagades, et andmejuurdepääs vastab kasutajarollidele. Kasutage objekti window["Microsoft"].Dynamic365.Portal.User põhiliste kasutajaatribuutide hankimiseks ja kogemuste kohandamiseks kasutaja persoonade põhjal.
Lisaks toetavad SPA saidid:
- Avaliku ja privaatse saidi konfiguratsioonid
- Juhtimissätted, sh kontroll anonüümse andmejuurdepääsu üle
- Autentimisteenuse pakkuja konfiguratsioonid
Need funktsioonid aitavad tagada kohandatud komponentide turvalise ja nõuetele vastava integreerimise Power Pages'is.
Seotud teave
- Microsoft Power Platform CLI
Õpetus: Kasuta Microsoft Power Platform CLI-d Power Pages - Visual Studio Code laienduse kasutamine