Je réponds à ma question. La réponse de mtns_cll à la question de Magento 2 obtenir l'URL de la boutique frontend pour un chemin dans l'administration fonctionne pour moi.
Je poste ma solution ici au cas où quelqu'un en aurait besoin:
frontend du produit :
injecter \Magento\Framework\Url $url
$url->getUrl('catalog/product/view', ['id' => $entityId, '_nosid' => true, '_query' => ['___store' => $storeCode]]);
backend produit
injectez \Magento\Framework\UrlInterface $url
ou utilisez l'interface url héritée de la classe parente.
$url->getUrl('catalog/product/edit', ['id' => $entityId, 'store' => $targetStoreId]);
frontend de catégorie
inject `\ Magento \ Framework \ Url $ url
$url->getUrl('catalog/category/view', ['id' => $entityId, '_nosid' => true, '_query' => ['___store' => $storeCode]]);
backend de catégorie
injectez \Magento\Framework\UrlInterface $url
ou utilisez l'interface url héritée de la classe parente.
$url->getUrl('catalog/category/edit', ['id' => $entityId, 'store' => $targetStoreId]);
frontal de page cms
injecter Magento\Cms\Block\Adminhtml\Page\Grid\Renderer\Action\UrlBuilder $rul
$url->getUrl($this->_pageModel->getIdentifier(), $targetStoreId, $storeCode );
backend de page cms
injectez \Magento\Framework\UrlInterface $url
ou utilisez l'interface url héritée de la classe parente.
$url->getUrl(PageActions::CMS_URL_PATH_EDIT, ['page_id' => $pageId]);
cms block backend
injectez \Magento\Framework\UrlInterface $url
ou utilisez l'interface url héritée de la classe parente.
$url->getUrl(BlockActions::URL_PATH_EDIT, ['block_id' => $blockId]);