Est-il possible d’intégrer la visionneuse de cartes Web dans une application Web personnalisée et de permettre aux utilisateurs d’en créer ?
J’aimerais faire quelque chose de similaire à ce que l’on peut faire avec plusieurs récits cartographiques (comme Journal, Cascade, ...), par exemple :

Comme vous pouvez le voir, la visionneuse est intégrée et un « bouton Enregistrer » se trouve à l’extérieur (pour une raison quelconque, le bouton Enregistrer par défaut n’apparaît pas lorsque la visionneuse est intégrée).
J’ai donc téléchargé le code source de storymap-journal et essayé de faire la même chose en local, mais j’ai obtenu ce message :

C’était troublant. Pourquoi ? Est-ce pour éviter des problèmes liés aux cookies ?
Pour comprendre comment le bouton « Enregistrer » est implémenté, j’ai ouvert la console et vu un message de débogage quand j’ai cliqué dessus. J’ai ensuite examiné le code source et trouvé la fonction appelée dans le fichier MapViewerWrapper.js :
<SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>send <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>json<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
console<SPAN class="punctuation token">.</SPAN><SPAN class="token function">log</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"MV sending"</SPAN><SPAN class="punctuation token">,</SPAN> json<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">try</SPAN> <SPAN class="punctuation token">{</SPAN>
params<SPAN class="punctuation token">.</SPAN>frameWindow<SPAN class="punctuation token">.</SPAN><SPAN class="token function">postMessage</SPAN><SPAN class="punctuation token">(</SPAN>JSON<SPAN class="punctuation token">.</SPAN><SPAN class="token function">stringify</SPAN><SPAN class="punctuation token">(</SPAN>json<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> MapViewerWrapperUtils<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getPortalURL</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">catch</SPAN> <SPAN class="punctuation token">(</SPAN> error <SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">// Il semble que ce code ne soit pas appelé, car l’erreur se produirait dans le frame</SPAN>
params<SPAN class="punctuation token">.</SPAN><SPAN class="token function">onError</SPAN><SPAN class="punctuation token">(</SPAN>error <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>En déboguant, j’ai vérifié l’objet « json », qui contient quelque chose comme :
<SPAN class="punctuation token">{</SPAN>type<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"hasUnsavedChanges"</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>Et « MapViewerWrapperUtils.getPortalURL() » renvoie :
<SPAN class="string token"><SPAN>"</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fhhkaos.maps.arcgis.com" target="_blank">http://hhkaos.maps.arcgis.com</A><SPAN>"</SPAN></SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
Je ne pense pas qu’il s’agisse d’un problème de communication entre domaines avec postMessage, si ?
Je voulais simplement demander si certains d’entre vous ont essayé de faire ce que je souhaite, ou savent simplement si c’est possible.
Merci d’avance,
Raul
P.-S. : J’ai essayé il y a deux ans, lorsque le « bouton Enregistrer » se trouvait encore dans l’iframe, mais je crois qu’il a été supprimé lors d’une mise à jour d’ArcGIS Online.