menuize.html 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104
  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <meta name="description" content="ESP8266/ESP32 WLAN configuration at run time with web interface">
  7. <link rel="canonical" href="https://Hieromon.github.io/AutoConnect/menuize.html">
  8. <meta name="author" content="Hieromon Ikasamo">
  9. <link rel="shortcut icon" href="assets/images/favicon.png">
  10. <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.1.6">
  11. <title>Attach the menus - AutoConnect for ESP8266/ESP32</title>
  12. <link rel="stylesheet" href="assets/stylesheets/main.6910b76c.min.css">
  13. <link rel="stylesheet" href="assets/stylesheets/palette.196e0c26.min.css">
  14. <meta name="theme-color" content="#4051b5">
  15. <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
  16. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
  17. <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style>
  18. <link rel="stylesheet" href="css/paragraph.css">
  19. <link rel="stylesheet" href="css/extra.css">
  20. <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css">
  21. <script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-116150854-1","auto"),ga("set","anonymizeIp",!0),ga("send","pageview"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){if(this.value){var e=document.location.pathname;ga("send","pageview",e+"?q="+this.value)}})}),document.addEventListener("DOMContentSwitch",function(){ga("send","pageview",document.location.pathname)})</script>
  22. <script async src="https://www.google-analytics.com/analytics.js"></script>
  23. </head>
  24. <body dir="ltr" data-md-color-scheme="" data-md-color-primary="indigo" data-md-color-accent="indigo">
  25. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  26. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  27. <label class="md-overlay" for="__drawer"></label>
  28. <div data-md-component="skip">
  29. <a href="#the-feature-of-menu-attaching-using-autoconnect" class="md-skip">
  30. Skip to content
  31. </a>
  32. </div>
  33. <div data-md-component="announce">
  34. </div>
  35. <header class="md-header" data-md-component="header">
  36. <nav class="md-header-nav md-grid" aria-label="Header">
  37. <a href="https://Hieromon.github.io/AutoConnect/" title="AutoConnect for ESP8266/ESP32" class="md-header-nav__button md-logo" aria-label="AutoConnect for ESP8266/ESP32">
  38. <img src="images/arduino-logo.svg" alt="logo">
  39. </a>
  40. <label class="md-header-nav__button md-icon" for="__drawer">
  41. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
  42. </label>
  43. <div class="md-header-nav__title" data-md-component="header-title">
  44. <div class="md-header-nav__ellipsis">
  45. <span class="md-header-nav__topic md-ellipsis">
  46. AutoConnect for ESP8266/ESP32
  47. </span>
  48. <span class="md-header-nav__topic md-ellipsis">
  49. Attach the menus
  50. </span>
  51. </div>
  52. </div>
  53. <label class="md-header-nav__button md-icon" for="__search">
  54. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
  55. </label>
  56. <div class="md-search" data-md-component="search" role="dialog">
  57. <label class="md-search__overlay" for="__search"></label>
  58. <div class="md-search__inner" role="search">
  59. <form class="md-search__form" name="search">
  60. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
  61. <label class="md-search__icon md-icon" for="__search">
  62. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
  63. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
  64. </label>
  65. <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
  66. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
  67. </button>
  68. </form>
  69. <div class="md-search__output">
  70. <div class="md-search__scrollwrap" data-md-scrollfix>
  71. <div class="md-search-result" data-md-component="search-result">
  72. <div class="md-search-result__meta">
  73. Initializing search
  74. </div>
  75. <ol class="md-search-result__list"></ol>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. <div class="md-header-nav__source">
  82. <a href="https://github.com/Hieromon/AutoConnect" title="Go to repository" class="md-source">
  83. <div class="md-source__icon md-icon">
  84. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  85. </div>
  86. <div class="md-source__repository">
  87. Hieromon/AutoConnect
  88. </div>
  89. </a>
  90. </div>
  91. </nav>
  92. </header>
  93. <div class="md-container" data-md-component="container">
  94. <main class="md-main" data-md-component="main">
  95. <div class="md-main__inner md-grid">
  96. <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
  97. <div class="md-sidebar__scrollwrap">
  98. <div class="md-sidebar__inner">
  99. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  100. <label class="md-nav__title" for="__drawer">
  101. <a href="https://Hieromon.github.io/AutoConnect/" title="AutoConnect for ESP8266/ESP32" class="md-nav__button md-logo" aria-label="AutoConnect for ESP8266/ESP32">
  102. <img src="images/arduino-logo.svg" alt="logo">
  103. </a>
  104. AutoConnect for ESP8266/ESP32
  105. </label>
  106. <div class="md-nav__source">
  107. <a href="https://github.com/Hieromon/AutoConnect" title="Go to repository" class="md-source">
  108. <div class="md-source__icon md-icon">
  109. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  110. </div>
  111. <div class="md-source__repository">
  112. Hieromon/AutoConnect
  113. </div>
  114. </a>
  115. </div>
  116. <ul class="md-nav__list" data-md-scrollfix>
  117. <li class="md-nav__item">
  118. <a href="index.html" class="md-nav__link">
  119. Overview
  120. </a>
  121. </li>
  122. <li class="md-nav__item">
  123. <a href="gettingstarted.html" class="md-nav__link">
  124. Getting started
  125. </a>
  126. </li>
  127. <li class="md-nav__item">
  128. <a href="menu.html" class="md-nav__link">
  129. AutoConnect menu
  130. </a>
  131. </li>
  132. <li class="md-nav__item">
  133. <a href="basicusage.html" class="md-nav__link">
  134. Basic usage
  135. </a>
  136. </li>
  137. <li class="md-nav__item md-nav__item--nested">
  138. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5" >
  139. <label class="md-nav__link" for="nav-5">
  140. Advanced usage
  141. <span class="md-nav__icon md-icon"></span>
  142. </label>
  143. <nav class="md-nav" aria-label="Advanced usage" data-md-level="1">
  144. <label class="md-nav__title" for="nav-5">
  145. <span class="md-nav__icon md-icon"></span>
  146. Advanced usage
  147. </label>
  148. <ul class="md-nav__list" data-md-scrollfix>
  149. <li class="md-nav__item">
  150. <a href="advancedusage.html" class="md-nav__link">
  151. Advanced usage
  152. </a>
  153. </li>
  154. <li class="md-nav__item">
  155. <a href="adconnection.html" class="md-nav__link">
  156. AutoConnect WiFi connection control
  157. </a>
  158. </li>
  159. <li class="md-nav__item">
  160. <a href="adcpcontrol.html" class="md-nav__link">
  161. Captive portal control
  162. </a>
  163. </li>
  164. <li class="md-nav__item">
  165. <a href="adnetwork.html" class="md-nav__link">
  166. Settings and controls for network and WiFi
  167. </a>
  168. </li>
  169. <li class="md-nav__item">
  170. <a href="adauthentication.html" class="md-nav__link">
  171. Authentication settings
  172. </a>
  173. </li>
  174. <li class="md-nav__item">
  175. <a href="adcredential.html" class="md-nav__link">
  176. Credential accesses
  177. </a>
  178. </li>
  179. <li class="md-nav__item">
  180. <a href="adexterior.html" class="md-nav__link">
  181. Customizing page appearance
  182. </a>
  183. </li>
  184. <li class="md-nav__item">
  185. <a href="adothers.html" class="md-nav__link">
  186. Other operation settings and controls
  187. </a>
  188. </li>
  189. </ul>
  190. </nav>
  191. </li>
  192. <li class="md-nav__item md-nav__item--nested">
  193. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6" >
  194. <label class="md-nav__link" for="nav-6">
  195. Custom Web pages
  196. <span class="md-nav__icon md-icon"></span>
  197. </label>
  198. <nav class="md-nav" aria-label="Custom Web pages" data-md-level="1">
  199. <label class="md-nav__title" for="nav-6">
  200. <span class="md-nav__icon md-icon"></span>
  201. Custom Web pages
  202. </label>
  203. <ul class="md-nav__list" data-md-scrollfix>
  204. <li class="md-nav__item">
  205. <a href="acintro.html" class="md-nav__link">
  206. Custom Web pages with AutoConnect
  207. </a>
  208. </li>
  209. <li class="md-nav__item">
  210. <a href="acelements.html" class="md-nav__link">
  211. AutoConnectElements
  212. </a>
  213. </li>
  214. <li class="md-nav__item">
  215. <a href="acjson.html" class="md-nav__link">
  216. Custom Web pages with JSON
  217. </a>
  218. </li>
  219. <li class="md-nav__item">
  220. <a href="achandling.html" class="md-nav__link">
  221. Handling the custom Web pages
  222. </a>
  223. </li>
  224. </ul>
  225. </nav>
  226. </li>
  227. <li class="md-nav__item md-nav__item--nested">
  228. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7" >
  229. <label class="md-nav__link" for="nav-7">
  230. OTA Updates
  231. <span class="md-nav__icon md-icon"></span>
  232. </label>
  233. <nav class="md-nav" aria-label="OTA Updates" data-md-level="1">
  234. <label class="md-nav__title" for="nav-7">
  235. <span class="md-nav__icon md-icon"></span>
  236. OTA Updates
  237. </label>
  238. <ul class="md-nav__list" data-md-scrollfix>
  239. <li class="md-nav__item">
  240. <a href="otaupdate.html" class="md-nav__link">
  241. OTA Updates
  242. </a>
  243. </li>
  244. <li class="md-nav__item">
  245. <a href="otabrowser.html" class="md-nav__link">
  246. Using Web Browser
  247. </a>
  248. </li>
  249. <li class="md-nav__item">
  250. <a href="otaserver.html" class="md-nav__link">
  251. Using Update Server
  252. </a>
  253. </li>
  254. </ul>
  255. </nav>
  256. </li>
  257. <li class="md-nav__item md-nav__item--nested">
  258. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8" >
  259. <label class="md-nav__link" for="nav-8">
  260. Library APIs
  261. <span class="md-nav__icon md-icon"></span>
  262. </label>
  263. <nav class="md-nav" aria-label="Library APIs" data-md-level="1">
  264. <label class="md-nav__title" for="nav-8">
  265. <span class="md-nav__icon md-icon"></span>
  266. Library APIs
  267. </label>
  268. <ul class="md-nav__list" data-md-scrollfix>
  269. <li class="md-nav__item">
  270. <a href="api.html" class="md-nav__link">
  271. AutoConnect API
  272. </a>
  273. </li>
  274. <li class="md-nav__item">
  275. <a href="apiaux.html" class="md-nav__link">
  276. AutoConnectAux API
  277. </a>
  278. </li>
  279. <li class="md-nav__item">
  280. <a href="apiconfig.html" class="md-nav__link">
  281. AutoConnectConfig API
  282. </a>
  283. </li>
  284. <li class="md-nav__item">
  285. <a href="apielements.html" class="md-nav__link">
  286. AutoConnectElements API
  287. </a>
  288. </li>
  289. <li class="md-nav__item">
  290. <a href="apiupdate.html" class="md-nav__link">
  291. AutoConnectUpdate API
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="apiextra.html" class="md-nav__link">
  296. Something extra
  297. </a>
  298. </li>
  299. </ul>
  300. </nav>
  301. </li>
  302. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  303. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9" checked>
  304. <label class="md-nav__link" for="nav-9">
  305. Examples
  306. <span class="md-nav__icon md-icon"></span>
  307. </label>
  308. <nav class="md-nav" aria-label="Examples" data-md-level="1">
  309. <label class="md-nav__title" for="nav-9">
  310. <span class="md-nav__icon md-icon"></span>
  311. Examples
  312. </label>
  313. <ul class="md-nav__list" data-md-scrollfix>
  314. <li class="md-nav__item">
  315. <a href="howtoembed.html" class="md-nav__link">
  316. How to embed
  317. </a>
  318. </li>
  319. <li class="md-nav__item">
  320. <a href="datatips.html" class="md-nav__link">
  321. Tips for data conversion
  322. </a>
  323. </li>
  324. <li class="md-nav__item md-nav__item--active">
  325. <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
  326. <label class="md-nav__link md-nav__link--active" for="__toc">
  327. Attach the menus
  328. <span class="md-nav__icon md-icon"></span>
  329. </label>
  330. <a href="menuize.html" class="md-nav__link md-nav__link--active">
  331. Attach the menus
  332. </a>
  333. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  334. <label class="md-nav__title" for="__toc">
  335. <span class="md-nav__icon md-icon"></span>
  336. Table of contents
  337. </label>
  338. <ul class="md-nav__list" data-md-scrollfix>
  339. <li class="md-nav__item">
  340. <a href="#the-feature-of-menu-attaching-using-autoconnect" class="md-nav__link">
  341. The feature of menu attaching using AutoConnect
  342. </a>
  343. </li>
  344. <li class="md-nav__item">
  345. <a href="#the-basic-mechanism-for-menu-generation" class="md-nav__link">
  346. The basic mechanism for menu generation
  347. </a>
  348. </li>
  349. <li class="md-nav__item">
  350. <a href="#place-the-item-for-the-legacy-sketches-on-the-menu" class="md-nav__link">
  351. Place the item for the legacy sketches on the menu
  352. </a>
  353. <nav class="md-nav" aria-label="Place the item for the legacy sketches on the menu">
  354. <ul class="md-nav__list">
  355. <li class="md-nav__item">
  356. <a href="#slightly-changes-to-adapt-fsbrowser-to-autoconnect-menu" class="md-nav__link">
  357. Slightly changes to adapt FSBrowser to AutoConnect menu
  358. </a>
  359. </li>
  360. <li class="md-nav__item">
  361. <a href="#fsbrowser-with-embedded-autoconnect" class="md-nav__link">
  362. FSBrowser with embedded AutoConnect
  363. </a>
  364. </li>
  365. </ul>
  366. </nav>
  367. </li>
  368. </ul>
  369. </nav>
  370. </li>
  371. <li class="md-nav__item">
  372. <a href="wojson.html" class="md-nav__link">
  373. Custom Web pages w/o JSON
  374. </a>
  375. </li>
  376. </ul>
  377. </nav>
  378. </li>
  379. <li class="md-nav__item md-nav__item--nested">
  380. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10" >
  381. <label class="md-nav__link" for="nav-10">
  382. Appendix
  383. <span class="md-nav__icon md-icon"></span>
  384. </label>
  385. <nav class="md-nav" aria-label="Appendix" data-md-level="1">
  386. <label class="md-nav__title" for="nav-10">
  387. <span class="md-nav__icon md-icon"></span>
  388. Appendix
  389. </label>
  390. <ul class="md-nav__list" data-md-scrollfix>
  391. <li class="md-nav__item">
  392. <a href="lsbegin.html" class="md-nav__link">
  393. Inside AutoConnect::begin
  394. </a>
  395. </li>
  396. <li class="md-nav__item">
  397. <a href="credit.html" class="md-nav__link">
  398. Saved credentials access
  399. </a>
  400. </li>
  401. <li class="md-nav__item">
  402. <a href="acupload.html" class="md-nav__link">
  403. File upload handler
  404. </a>
  405. </li>
  406. <li class="md-nav__item">
  407. <a href="colorized.html" class="md-nav__link">
  408. Custom colorized
  409. </a>
  410. </li>
  411. <li class="md-nav__item">
  412. <a href="changelabel.html" class="md-nav__link">
  413. Change label text
  414. </a>
  415. </li>
  416. </ul>
  417. </nav>
  418. </li>
  419. <li class="md-nav__item">
  420. <a href="faq.html" class="md-nav__link">
  421. FAQ
  422. </a>
  423. </li>
  424. <li class="md-nav__item">
  425. <a href="changelog.html" class="md-nav__link">
  426. Change log
  427. </a>
  428. </li>
  429. <li class="md-nav__item">
  430. <a href="license.html" class="md-nav__link">
  431. License
  432. </a>
  433. </li>
  434. </ul>
  435. </nav>
  436. </div>
  437. </div>
  438. </div>
  439. <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
  440. <div class="md-sidebar__scrollwrap">
  441. <div class="md-sidebar__inner">
  442. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  443. <label class="md-nav__title" for="__toc">
  444. <span class="md-nav__icon md-icon"></span>
  445. Table of contents
  446. </label>
  447. <ul class="md-nav__list" data-md-scrollfix>
  448. <li class="md-nav__item">
  449. <a href="#the-feature-of-menu-attaching-using-autoconnect" class="md-nav__link">
  450. The feature of menu attaching using AutoConnect
  451. </a>
  452. </li>
  453. <li class="md-nav__item">
  454. <a href="#the-basic-mechanism-for-menu-generation" class="md-nav__link">
  455. The basic mechanism for menu generation
  456. </a>
  457. </li>
  458. <li class="md-nav__item">
  459. <a href="#place-the-item-for-the-legacy-sketches-on-the-menu" class="md-nav__link">
  460. Place the item for the legacy sketches on the menu
  461. </a>
  462. <nav class="md-nav" aria-label="Place the item for the legacy sketches on the menu">
  463. <ul class="md-nav__list">
  464. <li class="md-nav__item">
  465. <a href="#slightly-changes-to-adapt-fsbrowser-to-autoconnect-menu" class="md-nav__link">
  466. Slightly changes to adapt FSBrowser to AutoConnect menu
  467. </a>
  468. </li>
  469. <li class="md-nav__item">
  470. <a href="#fsbrowser-with-embedded-autoconnect" class="md-nav__link">
  471. FSBrowser with embedded AutoConnect
  472. </a>
  473. </li>
  474. </ul>
  475. </nav>
  476. </li>
  477. </ul>
  478. </nav>
  479. </div>
  480. </div>
  481. </div>
  482. <div class="md-content">
  483. <article class="md-content__inner md-typeset">
  484. <h1>Attach the menus</h1>
  485. <h2 id="the-feature-of-menu-attaching-using-autoconnect">The feature of menu attaching using AutoConnect<a class="headerlink" href="#the-feature-of-menu-attaching-using-autoconnect" title="Permanent link">&para;</a></h2>
  486. <p>In this section, it presents numerous ways to customize the AutoConnect menu with your Sketch. AutoConnect dynamically materializes menu items at the Sketch run time with joined <a href="acintro.html#how-it-works">AutoConnectAux</a> as a sourced configuration. Typically, it has <a href="acintro.html#how-it-works">AutoConnectElements</a> for page rendering in its composition but can configure a Web page as a menu item without having AutoConnectElements. In other words, the AutoConnect Menu component allows you to easily embed a navigation menu with WiFi connection expansion in your Sketch, which has legacy pages for ESP8266WebServer or WebServer of ESP32.</p>
  487. <h2 id="the-basic-mechanism-for-menu-generation">The basic mechanism for menu generation<a class="headerlink" href="#the-basic-mechanism-for-menu-generation" title="Permanent link">&para;</a></h2>
  488. <p>Sketch can equip the <a href="menu.html">AutoConnect menu</a> by using three patterns according to the appropriate usage of the <a href="api.html">AutoConnect API</a>.</p>
  489. <dl>
  490. <dt><i class="fa fa-desktop"></i>&ensp;<strong>Basic menu</strong></dt>
  491. <dd>It is the most basic menu for a WiFi connection only. Sketch can automatically display it using the typical calling sequence of the <a href="api.html">AutoConnect API</a> with <a href="api.html#begin">AutoConnect::begin</a> and <a href="api.html#handleClient">AutoConnect::handleClient</a>.</dd>
  492. <dt><i class="fa fa-desktop"></i>&ensp;<strong>Extra menu with custom Web pages which is consisted by <a href="acelements.html">AutoConnectElements</a></strong></dt>
  493. <dd>It is an extended menu that appears when the Sketch consists of the custom Web pages with <a href="acintro.html#how-it-works">AutoConnectAux</a> and AutoConnectElements. Refer to section <a href="acintro.html#custom-web-pages-in-autoconnect-menu"><em>Custom Web pages section</em></a>.</dd>
  494. <dt><i class="fa fa-desktop"></i>&ensp;<strong>Extra menu which contains legacy pages</strong></dt>
  495. <dd>It provides an item for including a legacy page in the AutoConnect menu that natively uses the page request handler attached by the <a href="https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer#client-request-handlers">ESP8266WebServer::on</a> function. (Similarly, WebServer::on for ESP32)</dd>
  496. </dl>
  497. <p>The mechanism by which AutoConnect dynamically generates the menu is simple. The member variables <a href="apiaux.html#title"><strong>title</strong></a> and <a href="apiaux.html#uri"><strong>uri</strong></a> of AutoConnectAux will be transferred into <strong>&lt;li&gt;</strong> HTML tag as they are. Then all <strong>&lt;li&gt;</strong> elements are included in the form that makes up the menu.
  498. Therefore, the Sketch can register the legacy web pages to the menu by simply declaring the <a href="apiaux.html#autoconnectaux">title</a> and <a href="apiaux.html#autoconnectaux">URI</a> with AutoConnectAux and binding it to AutoConnect.</p>
  499. <h2 id="place-the-item-for-the-legacy-sketches-on-the-menu">Place the item for the legacy sketches on the menu<a class="headerlink" href="#place-the-item-for-the-legacy-sketches-on-the-menu" title="Permanent link">&para;</a></h2>
  500. <p>To implement this with your sketch, use only the <a href="apiaux.html#autoconnectaux">AutoConnectAux</a> constructed with the title and URI of that page. <a href="acelements.html">AutoConnectElements</a> is not required.</p>
  501. <p>The AutoConnect library package contains an example sketch for ESP8266WebServer known as FSBrowser. Its example is a sample implementation that supports AutoConnect without changing the structure of the original FSBrowser and has the menu item for <strong>Edit</strong> and <strong>List</strong>.</p>
  502. <p><span style="display:block;margin-left:auto;margin-right:auto;width:282px;height:492px;border:1px solid lightgrey;"><img data-gifffer="images/aux_fsbrowser.gif" data-gifffer-height="490" data-gifffer-width="280" /></span></p>
  503. <h3 id="slightly-changes-to-adapt-fsbrowser-to-autoconnect-menu"><i class="fa fa-edit"></i> Slightly changes to adapt FSBrowser to AutoConnect menu<a class="headerlink" href="#slightly-changes-to-adapt-fsbrowser-to-autoconnect-menu" title="Permanent link">&para;</a></h3>
  504. <p>The changes I made to adapt the FSBrowser to the AutoConnect menu are slight as follows:</p>
  505. <ol>
  506. <li>Add AutoConnect declaration.</li>
  507. <li>Add AutoConnectConfig declaration to replace the menu title to <code>FSBRowser</code>.</li>
  508. <li>Set the menu title using <a href="apiconfig.html#title">AutoConnectConfig::title</a>.</li>
  509. <li>Replace the destination of the not found handler (404 handler) from ESP8266WebServer to AutoConnect. <sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup><sup><sub><strong>IMPORTANT</strong></sub></sup></li>
  510. <li>Add AutoConnectAux using <a href="api.html#append">AutoConnect::append</a> and combine an item for <strong>Edit</strong>.</li>
  511. <li>Add AutoConnectAux using <a href="api.html#append">AutoConnect::append</a> and combine an item for <strong>List</strong>.</li>
  512. <li>Establish a WiFi connection using <a href="api.html#begin">AutoConnect::begin</a> and execute <a href="api.html#handleclient">AutoConnect::handleClient</a> in the <strong>loop</strong>, as in the case of handling the basic menu.</li>
  513. </ol>
  514. <h3 id="fsbrowser-with-embedded-autoconnect"><i class="fa fa-code"></i> FSBrowser with embedded AutoConnect<a class="headerlink" href="#fsbrowser-with-embedded-autoconnect" title="Permanent link">&para;</a></h3>
  515. <p>Modification for FSBrowser as follows: <small>(Excerpt of the sketch code)</small></p>
  516. <div style="overflow:auto"><img style="width:auto;max-width:none;height:840px" src="images/fsbrowser_ba.svg" /></div>
  517. <p>... and embeds a hyperlink with an <a href="apiextra.html#icons">icon</a> in the bottom of the body section of <em>index.htm</em> contained in the data folder to jump to the AutoConnect menu.</p>
  518. <div class="highlight" style="background: #272822"><pre style="line-height: 125%; margin: 0;"><span></span><code><span style="color: #f8f8f2">&lt;</span><span style="color: #f92672">p</span> <span style="color: #a6e22e">style</span><span style="color: #f92672">=</span><span style="color: #e6db74">&quot;padding-top:15px;text-align:center&quot;</span><span style="color: #f8f8f2">&gt;</span>
  519. <span style="color: #f8f8f2">&lt;</span><span style="color: #f92672">a</span> <span style="color: #a6e22e">href</span><span style="color: #f92672">=</span><span style="color: #e6db74">&quot;/_ac&quot;</span><span style="color: #f8f8f2">&gt;&lt;</span><span style="color: #f92672">img</span> <span style="color: #a6e22e">src</span><span style="color: #f92672">=</span><span style="color: #e6db74">&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAC2klEQVRIS61VvWsUQRSfmU2pon9BUIkQUaKFaCBKgooSb2d3NSSFKbQR/KrEIiIKBiGF2CgRxEpjQNHs7mwOUcghwUQ7g58IsbGxEBWsb2f8zR177s3t3S2cA8ftzPu993vzvoaSnMu2vRKlaqgKp74Q/tE8qjQPyHGcrUrRjwlWShmDbFMURd/a6TcQwNiYUmpFCPElUebcuQ2vz6aNATMVReHEPwzfSSntDcNwNo2rI+DcvQzhpAbA40VKyV0p1Q9snzBG1qYVcYufXV1sREraDcxpyHdXgkfpRBj6Uwm2RsC5dxxmZ9pdOY9cKTISRcHTCmGiUCh4fYyplTwG2mAUbtMTBMHXOgK9QfyXEZr+TkgQ1oUwDA40hEgfIAfj+HuQRaBzAs9eKyUZ5Htx+T3ZODKG8DzOJMANhmGomJVMXPll+hx9UUAlzZrJJ4QNCDG3VEfguu7mcpmcB/gkBOtShhQhchAlu5jlLUgc9ENgyP5gf9+y6LTv+58p5zySkgwzLNOIGc8sEoT1Lc53NMlbCQQuvMxeCME1NNPVVkmH/i3IzzXDtCSA0qQQwZWOCJDY50jsQRjJmkslEOxvTcDRO6zPxOh5xZglKkYLhWM9jMVnkIsTyMT6NBj7IbOCEjm6HxNVVTo2WXqEWJZ1T8rytB6GxizyDkPhWVpBqfiXUtbo/HywYJSpA9kMamNNPZ71R9Hcm+TMHHZNGw3EuraXEUldbfvw25UdOjqOt+JhMwJd7+jSTpZaEiIcaCDwPK83jtWnTkwnunFMtxeL/ge9r4XItt1RNNaj/0GAcV2bR3U5sG3nEh6M61US+Qrfd9Bs31GGulI2GOS/8dgcQZV1w+ApjIxB7TDwF9GcNzJzoA+rD0/8HvPnXQJCt2qFCwbBTfRI7UyXumWVt+HJ9NO4XI++bdsb0YyrqXmlh+AWOLHaLqS5CLQR5EggR3YlcVS9gKeH2hnX8r8Kmi1CAsl36QAAAABJRU5ErkJggg==&quot;</span> <span style="color: #a6e22e">border</span><span style="color: #f92672">=</span><span style="color: #e6db74">&quot;0&quot;</span> <span style="color: #a6e22e">title</span><span style="color: #f92672">=</span><span style="color: #e6db74">&quot;AutoConnect menu&quot;</span> <span style="color: #a6e22e">alt</span><span style="color: #f92672">=</span><span style="color: #e6db74">&quot;AutoConnect menu&quot;</span><span style="color: #f8f8f2">/&gt;&lt;/</span><span style="color: #f92672">a</span><span style="color: #f8f8f2">&gt;</span>
  520. <span style="color: #f8f8f2">&lt;/</span><span style="color: #f92672">p</span><span style="color: #f8f8f2">&gt;</span>
  521. </code></pre></div>
  522. <script>
  523. window.onload = function() {
  524. Gifffer();
  525. };
  526. </script>
  527. <div class="footnote">
  528. <hr />
  529. <ol>
  530. <li id="fn:1">
  531. <p>Missing this step, AutoConnect cannot handle the menu. Refs: <a href="advancedusage.html#404-handler">404 handler</a>&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
  532. </li>
  533. </ol>
  534. </div>
  535. </article>
  536. </div>
  537. </div>
  538. </main>
  539. <footer class="md-footer">
  540. <div class="md-footer-nav">
  541. <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
  542. <a href="datatips.html" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
  543. <div class="md-footer-nav__button md-icon">
  544. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
  545. </div>
  546. <div class="md-footer-nav__title">
  547. <div class="md-ellipsis">
  548. <span class="md-footer-nav__direction">
  549. Previous
  550. </span>
  551. Tips for data conversion
  552. </div>
  553. </div>
  554. </a>
  555. <a href="wojson.html" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
  556. <div class="md-footer-nav__title">
  557. <div class="md-ellipsis">
  558. <span class="md-footer-nav__direction">
  559. Next
  560. </span>
  561. Custom Web pages w/o JSON
  562. </div>
  563. </div>
  564. <div class="md-footer-nav__button md-icon">
  565. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
  566. </div>
  567. </a>
  568. </nav>
  569. </div>
  570. <div class="md-footer-meta md-typeset">
  571. <div class="md-footer-meta__inner md-grid">
  572. <div class="md-footer-copyright">
  573. <div class="md-footer-copyright__highlight">
  574. Copyright &copy; 2018-2020 Hieromon Ikasamo
  575. </div>
  576. Made with
  577. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  578. Material for MkDocs
  579. </a>
  580. </div>
  581. <div class="md-footer-social">
  582. <a href="https://github.com/Hieromon" target="_blank" rel="noopener" title="github.com" class="md-footer-social__link">
  583. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
  584. </a>
  585. <a href="https://twitter.com/hieromon" target="_blank" rel="noopener" title="twitter.com" class="md-footer-social__link">
  586. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
  587. </a>
  588. </div>
  589. </div>
  590. </div>
  591. </footer>
  592. </div>
  593. <script src="assets/javascripts/vendor.fd16492e.min.js"></script>
  594. <script src="assets/javascripts/bundle.7836ba4d.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script>
  595. <script>
  596. app = initialize({
  597. base: ".",
  598. features: [],
  599. search: Object.assign({
  600. worker: "assets/javascripts/worker/search.4ac00218.min.js"
  601. }, typeof search !== "undefined" && search)
  602. })
  603. </script>
  604. <script src="js/gifffer.min.js"></script>
  605. </body>
  606. </html>