basicusage.html 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286
  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/basicusage.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>Basic usage - 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="#simple-usage" 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. Basic usage
  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 md-nav__item--active">
  133. <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
  134. <label class="md-nav__link md-nav__link--active" for="__toc">
  135. Basic usage
  136. <span class="md-nav__icon md-icon"></span>
  137. </label>
  138. <a href="basicusage.html" class="md-nav__link md-nav__link--active">
  139. Basic usage
  140. </a>
  141. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  142. <label class="md-nav__title" for="__toc">
  143. <span class="md-nav__icon md-icon"></span>
  144. Table of contents
  145. </label>
  146. <ul class="md-nav__list" data-md-scrollfix>
  147. <li class="md-nav__item">
  148. <a href="#simple-usage" class="md-nav__link">
  149. Simple usage
  150. </a>
  151. <nav class="md-nav" aria-label="Simple usage">
  152. <ul class="md-nav__list">
  153. <li class="md-nav__item">
  154. <a href="#embed-to-the-sketches" class="md-nav__link">
  155. Embed to the Sketches
  156. </a>
  157. </li>
  158. </ul>
  159. </nav>
  160. </li>
  161. <li class="md-nav__item">
  162. <a href="#basic-usage" class="md-nav__link">
  163. Basic usage
  164. </a>
  165. <nav class="md-nav" aria-label="Basic usage">
  166. <ul class="md-nav__list">
  167. <li class="md-nav__item">
  168. <a href="#basic-logic-sequence-for-the-user-sketches" class="md-nav__link">
  169. Basic logic sequence for the user Sketches
  170. </a>
  171. <nav class="md-nav" aria-label=" Basic logic sequence for the user Sketches">
  172. <ul class="md-nav__list">
  173. <li class="md-nav__item">
  174. <a href="#1-a-typical-logic-sequence" class="md-nav__link">
  175. 1. A typical logic sequence
  176. </a>
  177. </li>
  178. <li class="md-nav__item">
  179. <a href="#2-declare-autoconnect-object" class="md-nav__link">
  180. 2. Declare AutoConnect object
  181. </a>
  182. </li>
  183. <li class="md-nav__item">
  184. <a href="#3-no-need-wifibegin" class="md-nav__link">
  185. 3. No need WiFI.begin(...)
  186. </a>
  187. </li>
  188. <li class="md-nav__item">
  189. <a href="#4-alternate-esp8266webserverbegin-and-webserverbegin" class="md-nav__link">
  190. 4. Alternate ESP8266WebServer::begin() and WebServer::begin()
  191. </a>
  192. </li>
  193. <li class="md-nav__item">
  194. <a href="#5-autoconnectbegin-with-ssid-and-password" class="md-nav__link">
  195. 5. AutoConnect::begin with SSID and Password
  196. </a>
  197. </li>
  198. <li class="md-nav__item">
  199. <a href="#6-use-esp8266webserveron-and-webserveron-to-handle-url" class="md-nav__link">
  200. 6. Use ESP8266WebServer::on and WebServer::on to handle URL
  201. </a>
  202. </li>
  203. <li class="md-nav__item">
  204. <a href="#7-use-either-esp8266webserverhandleclientwebserverhandleclient-or-autoconnecthandleclient" class="md-nav__link">
  205. 7. Use either ESP8266WebServer::handleClient()/WebServer::handleClient() or AutoConnect::handleClient()
  206. </a>
  207. </li>
  208. </ul>
  209. </nav>
  210. </li>
  211. <li class="md-nav__item">
  212. <a href="#esp8266webserverwebserver-hosted-or-parasitic" class="md-nav__link">
  213. ESP8266WebServer/WebServer hosted or parasitic
  214. </a>
  215. </li>
  216. </ul>
  217. </nav>
  218. </li>
  219. </ul>
  220. </nav>
  221. </li>
  222. <li class="md-nav__item md-nav__item--nested">
  223. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5" >
  224. <label class="md-nav__link" for="nav-5">
  225. Advanced usage
  226. <span class="md-nav__icon md-icon"></span>
  227. </label>
  228. <nav class="md-nav" aria-label="Advanced usage" data-md-level="1">
  229. <label class="md-nav__title" for="nav-5">
  230. <span class="md-nav__icon md-icon"></span>
  231. Advanced usage
  232. </label>
  233. <ul class="md-nav__list" data-md-scrollfix>
  234. <li class="md-nav__item">
  235. <a href="advancedusage.html" class="md-nav__link">
  236. Advanced usage
  237. </a>
  238. </li>
  239. <li class="md-nav__item">
  240. <a href="adconnection.html" class="md-nav__link">
  241. AutoConnect WiFi connection control
  242. </a>
  243. </li>
  244. <li class="md-nav__item">
  245. <a href="adcpcontrol.html" class="md-nav__link">
  246. Captive portal control
  247. </a>
  248. </li>
  249. <li class="md-nav__item">
  250. <a href="adnetwork.html" class="md-nav__link">
  251. Settings and controls for network and WiFi
  252. </a>
  253. </li>
  254. <li class="md-nav__item">
  255. <a href="adauthentication.html" class="md-nav__link">
  256. Authentication settings
  257. </a>
  258. </li>
  259. <li class="md-nav__item">
  260. <a href="adcredential.html" class="md-nav__link">
  261. Credential accesses
  262. </a>
  263. </li>
  264. <li class="md-nav__item">
  265. <a href="adexterior.html" class="md-nav__link">
  266. Customizing page appearance
  267. </a>
  268. </li>
  269. <li class="md-nav__item">
  270. <a href="adothers.html" class="md-nav__link">
  271. Other operation settings and controls
  272. </a>
  273. </li>
  274. </ul>
  275. </nav>
  276. </li>
  277. <li class="md-nav__item md-nav__item--nested">
  278. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6" >
  279. <label class="md-nav__link" for="nav-6">
  280. Custom Web pages
  281. <span class="md-nav__icon md-icon"></span>
  282. </label>
  283. <nav class="md-nav" aria-label="Custom Web pages" data-md-level="1">
  284. <label class="md-nav__title" for="nav-6">
  285. <span class="md-nav__icon md-icon"></span>
  286. Custom Web pages
  287. </label>
  288. <ul class="md-nav__list" data-md-scrollfix>
  289. <li class="md-nav__item">
  290. <a href="acintro.html" class="md-nav__link">
  291. Custom Web pages with AutoConnect
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="acelements.html" class="md-nav__link">
  296. AutoConnectElements
  297. </a>
  298. </li>
  299. <li class="md-nav__item">
  300. <a href="acjson.html" class="md-nav__link">
  301. Custom Web pages with JSON
  302. </a>
  303. </li>
  304. <li class="md-nav__item">
  305. <a href="achandling.html" class="md-nav__link">
  306. Handling the custom Web pages
  307. </a>
  308. </li>
  309. </ul>
  310. </nav>
  311. </li>
  312. <li class="md-nav__item md-nav__item--nested">
  313. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7" >
  314. <label class="md-nav__link" for="nav-7">
  315. OTA Updates
  316. <span class="md-nav__icon md-icon"></span>
  317. </label>
  318. <nav class="md-nav" aria-label="OTA Updates" data-md-level="1">
  319. <label class="md-nav__title" for="nav-7">
  320. <span class="md-nav__icon md-icon"></span>
  321. OTA Updates
  322. </label>
  323. <ul class="md-nav__list" data-md-scrollfix>
  324. <li class="md-nav__item">
  325. <a href="otaupdate.html" class="md-nav__link">
  326. OTA Updates
  327. </a>
  328. </li>
  329. <li class="md-nav__item">
  330. <a href="otabrowser.html" class="md-nav__link">
  331. Using Web Browser
  332. </a>
  333. </li>
  334. <li class="md-nav__item">
  335. <a href="otaserver.html" class="md-nav__link">
  336. Using Update Server
  337. </a>
  338. </li>
  339. </ul>
  340. </nav>
  341. </li>
  342. <li class="md-nav__item md-nav__item--nested">
  343. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8" >
  344. <label class="md-nav__link" for="nav-8">
  345. Library APIs
  346. <span class="md-nav__icon md-icon"></span>
  347. </label>
  348. <nav class="md-nav" aria-label="Library APIs" data-md-level="1">
  349. <label class="md-nav__title" for="nav-8">
  350. <span class="md-nav__icon md-icon"></span>
  351. Library APIs
  352. </label>
  353. <ul class="md-nav__list" data-md-scrollfix>
  354. <li class="md-nav__item">
  355. <a href="api.html" class="md-nav__link">
  356. AutoConnect API
  357. </a>
  358. </li>
  359. <li class="md-nav__item">
  360. <a href="apiaux.html" class="md-nav__link">
  361. AutoConnectAux API
  362. </a>
  363. </li>
  364. <li class="md-nav__item">
  365. <a href="apiconfig.html" class="md-nav__link">
  366. AutoConnectConfig API
  367. </a>
  368. </li>
  369. <li class="md-nav__item">
  370. <a href="apielements.html" class="md-nav__link">
  371. AutoConnectElements API
  372. </a>
  373. </li>
  374. <li class="md-nav__item">
  375. <a href="apiupdate.html" class="md-nav__link">
  376. AutoConnectUpdate API
  377. </a>
  378. </li>
  379. <li class="md-nav__item">
  380. <a href="apiextra.html" class="md-nav__link">
  381. Something extra
  382. </a>
  383. </li>
  384. </ul>
  385. </nav>
  386. </li>
  387. <li class="md-nav__item md-nav__item--nested">
  388. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9" >
  389. <label class="md-nav__link" for="nav-9">
  390. Examples
  391. <span class="md-nav__icon md-icon"></span>
  392. </label>
  393. <nav class="md-nav" aria-label="Examples" data-md-level="1">
  394. <label class="md-nav__title" for="nav-9">
  395. <span class="md-nav__icon md-icon"></span>
  396. Examples
  397. </label>
  398. <ul class="md-nav__list" data-md-scrollfix>
  399. <li class="md-nav__item">
  400. <a href="howtoembed.html" class="md-nav__link">
  401. How to embed
  402. </a>
  403. </li>
  404. <li class="md-nav__item">
  405. <a href="datatips.html" class="md-nav__link">
  406. Tips for data conversion
  407. </a>
  408. </li>
  409. <li class="md-nav__item">
  410. <a href="menuize.html" class="md-nav__link">
  411. Attach the menus
  412. </a>
  413. </li>
  414. <li class="md-nav__item">
  415. <a href="wojson.html" class="md-nav__link">
  416. Custom Web pages w/o JSON
  417. </a>
  418. </li>
  419. </ul>
  420. </nav>
  421. </li>
  422. <li class="md-nav__item md-nav__item--nested">
  423. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10" >
  424. <label class="md-nav__link" for="nav-10">
  425. Appendix
  426. <span class="md-nav__icon md-icon"></span>
  427. </label>
  428. <nav class="md-nav" aria-label="Appendix" data-md-level="1">
  429. <label class="md-nav__title" for="nav-10">
  430. <span class="md-nav__icon md-icon"></span>
  431. Appendix
  432. </label>
  433. <ul class="md-nav__list" data-md-scrollfix>
  434. <li class="md-nav__item">
  435. <a href="lsbegin.html" class="md-nav__link">
  436. Inside AutoConnect::begin
  437. </a>
  438. </li>
  439. <li class="md-nav__item">
  440. <a href="credit.html" class="md-nav__link">
  441. Saved credentials access
  442. </a>
  443. </li>
  444. <li class="md-nav__item">
  445. <a href="acupload.html" class="md-nav__link">
  446. File upload handler
  447. </a>
  448. </li>
  449. <li class="md-nav__item">
  450. <a href="colorized.html" class="md-nav__link">
  451. Custom colorized
  452. </a>
  453. </li>
  454. <li class="md-nav__item">
  455. <a href="changelabel.html" class="md-nav__link">
  456. Change label text
  457. </a>
  458. </li>
  459. </ul>
  460. </nav>
  461. </li>
  462. <li class="md-nav__item">
  463. <a href="faq.html" class="md-nav__link">
  464. FAQ
  465. </a>
  466. </li>
  467. <li class="md-nav__item">
  468. <a href="changelog.html" class="md-nav__link">
  469. Change log
  470. </a>
  471. </li>
  472. <li class="md-nav__item">
  473. <a href="license.html" class="md-nav__link">
  474. License
  475. </a>
  476. </li>
  477. </ul>
  478. </nav>
  479. </div>
  480. </div>
  481. </div>
  482. <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
  483. <div class="md-sidebar__scrollwrap">
  484. <div class="md-sidebar__inner">
  485. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  486. <label class="md-nav__title" for="__toc">
  487. <span class="md-nav__icon md-icon"></span>
  488. Table of contents
  489. </label>
  490. <ul class="md-nav__list" data-md-scrollfix>
  491. <li class="md-nav__item">
  492. <a href="#simple-usage" class="md-nav__link">
  493. Simple usage
  494. </a>
  495. <nav class="md-nav" aria-label="Simple usage">
  496. <ul class="md-nav__list">
  497. <li class="md-nav__item">
  498. <a href="#embed-to-the-sketches" class="md-nav__link">
  499. Embed to the Sketches
  500. </a>
  501. </li>
  502. </ul>
  503. </nav>
  504. </li>
  505. <li class="md-nav__item">
  506. <a href="#basic-usage" class="md-nav__link">
  507. Basic usage
  508. </a>
  509. <nav class="md-nav" aria-label="Basic usage">
  510. <ul class="md-nav__list">
  511. <li class="md-nav__item">
  512. <a href="#basic-logic-sequence-for-the-user-sketches" class="md-nav__link">
  513. Basic logic sequence for the user Sketches
  514. </a>
  515. <nav class="md-nav" aria-label=" Basic logic sequence for the user Sketches">
  516. <ul class="md-nav__list">
  517. <li class="md-nav__item">
  518. <a href="#1-a-typical-logic-sequence" class="md-nav__link">
  519. 1. A typical logic sequence
  520. </a>
  521. </li>
  522. <li class="md-nav__item">
  523. <a href="#2-declare-autoconnect-object" class="md-nav__link">
  524. 2. Declare AutoConnect object
  525. </a>
  526. </li>
  527. <li class="md-nav__item">
  528. <a href="#3-no-need-wifibegin" class="md-nav__link">
  529. 3. No need WiFI.begin(...)
  530. </a>
  531. </li>
  532. <li class="md-nav__item">
  533. <a href="#4-alternate-esp8266webserverbegin-and-webserverbegin" class="md-nav__link">
  534. 4. Alternate ESP8266WebServer::begin() and WebServer::begin()
  535. </a>
  536. </li>
  537. <li class="md-nav__item">
  538. <a href="#5-autoconnectbegin-with-ssid-and-password" class="md-nav__link">
  539. 5. AutoConnect::begin with SSID and Password
  540. </a>
  541. </li>
  542. <li class="md-nav__item">
  543. <a href="#6-use-esp8266webserveron-and-webserveron-to-handle-url" class="md-nav__link">
  544. 6. Use ESP8266WebServer::on and WebServer::on to handle URL
  545. </a>
  546. </li>
  547. <li class="md-nav__item">
  548. <a href="#7-use-either-esp8266webserverhandleclientwebserverhandleclient-or-autoconnecthandleclient" class="md-nav__link">
  549. 7. Use either ESP8266WebServer::handleClient()/WebServer::handleClient() or AutoConnect::handleClient()
  550. </a>
  551. </li>
  552. </ul>
  553. </nav>
  554. </li>
  555. <li class="md-nav__item">
  556. <a href="#esp8266webserverwebserver-hosted-or-parasitic" class="md-nav__link">
  557. ESP8266WebServer/WebServer hosted or parasitic
  558. </a>
  559. </li>
  560. </ul>
  561. </nav>
  562. </li>
  563. </ul>
  564. </nav>
  565. </div>
  566. </div>
  567. </div>
  568. <div class="md-content">
  569. <article class="md-content__inner md-typeset">
  570. <h1>Basic usage</h1>
  571. <h2 id="simple-usage">Simple usage<a class="headerlink" href="#simple-usage" title="Permanent link">&para;</a></h2>
  572. <h3 id="embed-to-the-sketches"><i class="fa fa-edit"></i> Embed to the Sketches<a class="headerlink" href="#embed-to-the-sketches" title="Permanent link">&para;</a></h3>
  573. <p>How embed the AutoConnect to the Sketches you have. Most simple approach to applying AutoConnect for the existing Sketches, follow the below steps. The below Sketch is for ESP8266. For ESP32, replace <code>ESP8266WebServer</code> with <code>WebServer</code> and <code>ESP8266WiFi.h</code> with <code>WiFi.h</code> respectively.</p>
  574. <p><img src="images/BeforeAfter.svg" /></p>
  575. <p><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/></svg></span> Insert <code class="highlight"><span class="cp">#include</span> <span class="cpf">&lt;AutoConnect.h&gt;</span></code> to behind of <code class="highlight"><span class="cp">#include</span> <span class="cpf">&lt;ESP8266WebServer.h&gt;</span></code>.</p>
  576. <p><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/></svg></span> Insert <code class="highlight"><span class="na">AutoConnect</span> <em>PORTAL(WEBSERVER);</em></code> to behind of <code class="highlight"><span class="na">ESP8266WebServer</span> <em>WEBSERVER;</em></code> declaration.<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup></p>
  577. <p><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/></svg></span> Remove <code class="highlight">WiFi.<span class="na">begin</span>(<em>SSID</em>,<em>PSK</em>)</code> and the subsequent logic for the connection status check.</p>
  578. <p><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/></svg></span> Replace <code class="highlight"><em>WEBSERVER</em>.<span class="na">begin</span><span class="p">()</span></code> to <code class="highlight"><em>PORTAL</em>.<span class="na">begin</span><span class="p">()</span></code>.<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup></p>
  579. <p><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/></svg></span> Replace <code class="highlight"><em>WEBSERVER</em>.<span class="na">handleClient</span><span class="p">()</span></code> to <code class="highlight"><em>PORTAL</em>.<span class="na">handleClient</span><span class="p">()</span></code>.<sup id="fnref:3"><a class="footnote-ref" href="#fn:3" rel="footnote">3</a></sup></p>
  580. <p><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/></svg></span> If the connection checks logic is needed, you can check the return value according to <code class="highlight"><em>PORTAL</em>.<span class="na">begin</span><span class="p">()</span></code> with <code class="highlight">true</code> or <code class="highlight">false</code>.</p>
  581. <h2 id="basic-usage">Basic usage<a class="headerlink" href="#basic-usage" title="Permanent link">&para;</a></h2>
  582. <h3 id="basic-logic-sequence-for-the-user-sketches"><i class="fa fa-caret-right"></i> Basic logic sequence for the user Sketches<a class="headerlink" href="#basic-logic-sequence-for-the-user-sketches" title="Permanent link">&para;</a></h3>
  583. <h4 id="1-a-typical-logic-sequence">1. A typical logic sequence<a class="headerlink" href="#1-a-typical-logic-sequence" title="Permanent link">&para;</a></h4>
  584. <div class="admonition note">
  585. <ol>
  586. <li><strong>Include headers,</strong> <code>ESP8266WebServer.h</code>/<code>WebServer.h</code> and <code>AutoConnect.h</code> </li>
  587. <li><strong>Declare an ESP8266WebServer variable for ESP8266 or a WebServer variable for ESP32.</strong> </li>
  588. <li><strong>Declare an AutoConnect variable.</strong> </li>
  589. <li><strong>Implement the URL handlers provided for the </strong><code>on</code><strong> method of ESP8266WebServer/WebServer with the <em>function()</em>.</strong> </li>
  590. <li><strong>setup()</strong><br />
  591. 5.1 <strong>Sets URL handler the <em>function()</em> to ESP8266WebServer/WebServer by</strong><code>ESP8266WebServer::on</code><strong>/</strong><code>WebServer::on</code><strong>.</strong><br />
  592. 5.2 <strong>Starts </strong><code>AutoConnect::begin()</code><strong>.</strong><br />
  593. 5.3 <strong>Check WiFi connection status.</strong> </li>
  594. <li><strong>loop()</strong><br />
  595. 6.1 <strong>Do the process for actual Sketch.</strong><br />
  596. 6.2 <strong>Invokes </strong><code>AutoConnect::handleClient()</code><strong>, or invokes </strong><code>ESP8266WebServer::handleClient()</code><strong>/</strong><code>WebServer::handleClient</code><strong> then </strong><code>AutoConnect::handleRequest()</code><strong>.</strong> </li>
  597. </ol>
  598. </div>
  599. <h4 id="2-declare-autoconnect-object">2. Declare AutoConnect object<a class="headerlink" href="#2-declare-autoconnect-object" title="Permanent link">&para;</a></h4>
  600. <p><a href="#esp8266webserver-hosted-or-parasitic">Two options</a> are available for <a href="api.html#constructors">AutoConnect constructor</a>.</p>
  601. <p><div class="highlight" style="background: #272822"><pre style="line-height: 125%; margin: 0;"><span></span><code><span style="color: #f8f8f2">AutoConnect</span> <span style="color: #a6e22e">VARIABLE</span><span style="color: #f8f8f2">(</span><span style="color: #f92672">&amp;</span><span style="color: #f8f8f2">ESP8266WebServer);</span> <span style="color: #75715e">// For ESP8266</span>
  602. <span style="color: #f8f8f2">AutoConnect</span> <span style="color: #a6e22e">VARIABLE</span><span style="color: #f8f8f2">(</span><span style="color: #f92672">&amp;</span><span style="color: #f8f8f2">WebServer);</span> <span style="color: #75715e">// For ESP32</span>
  603. </code></pre></div>
  604. or</p>
  605. <div class="highlight" style="background: #272822"><pre style="line-height: 125%; margin: 0;"><span></span><code><span style="color: #f8f8f2">AutoConnect</span> <span style="color: #f8f8f2">VARIABLE;</span>
  606. </code></pre></div>
  607. <ul>
  608. <li>
  609. <p><strong>The parameter with an ESP8266WebServer/WebServer variable:</strong> An ESP8266WebServer/WebServer object variable must be declared. AutoConnect uses its variable to handles the <a href="menu.html">AutoConnect menu</a>.</p>
  610. </li>
  611. <li>
  612. <p><strong>With no parameter:</strong> the Sketch does not declare ESP8266WebServer/WebServer object. In this case, AutoConnect allocates an instance of the ESP8266WebServer/WebServer internally. The logic sequence of the Sketch is somewhat different as the above. To register a URL handler function by <em>ESP8266WebServer::on</em> or <em>WebServer::on</em> should be performed after <a href="api.html#begin"><em>AutoConnect::begin</em></a>.</p>
  613. </li>
  614. </ul>
  615. <h4 id="3-no-need-wifibegin">3. No need WiFI.begin(...)<a class="headerlink" href="#3-no-need-wifibegin" title="Permanent link">&para;</a></h4>
  616. <p>AutoConnect internally performs <em>WiFi.begin</em> to establish a WiFi connection. There is no need for a general process to establish a connection using <em>WiFi.begin</em> with a Sketch code.</p>
  617. <h4 id="4-alternate-esp8266webserverbegin-and-webserverbegin">4. Alternate ESP8266WebServer::begin() and WebServer::begin()<a class="headerlink" href="#4-alternate-esp8266webserverbegin-and-webserverbegin" title="Permanent link">&para;</a></h4>
  618. <p><a href="api.html#begin"><em>AutoConnect::begin</em></a> executes <em>ESP8266WebServer::begin</em>/<em>WebServer::begin</em> internally too and it starts the DNS server to behave as a Captive portal. So it is not needed to call <em>ESP8266WebServer::begin</em>/<em>WebServer::begin</em> in the Sketch.</p>
  619. <div class="admonition info">
  620. <p class="admonition-title">Why DNS Server starts</p>
  621. <p>AutoConnect traps the detection of the captive portal and achieves a connection with the WLAN interactively by the AutoConnect menu. It responds SoftAP address to all DNS queries temporarily to trap. Once a WiFi connection establishes, the DNS server contributed by AutoConnect stops.</p>
  622. </div>
  623. <h4 id="5-autoconnectbegin-with-ssid-and-password">5. AutoConnect::begin with SSID and Password<a class="headerlink" href="#5-autoconnectbegin-with-ssid-and-password" title="Permanent link">&para;</a></h4>
  624. <p>SSID and Password can also specify by <a href="api.html#begin"><em>AutoConnect::begin</em></a>. ESP8266/ESP32 uses provided SSID and Password explicitly. If the connection false with specified SSID with Password then a captive portal is activated. SSID and Password are not present, ESP8266 SDK will attempt to connect using the still effectual SSID and password. Usually, it succeeds.</p>
  625. <h4 id="6-use-esp8266webserveron-and-webserveron-to-handle-url">6. Use ESP8266WebServer::on and WebServer::on to handle URL<a class="headerlink" href="#6-use-esp8266webserveron-and-webserveron-to-handle-url" title="Permanent link">&para;</a></h4>
  626. <p>AutoConnect is designed to coexist with the process for handling the web pages by user Sketches. The page processing function which will send an HTML to the client invoked by the "<em>on::ESP8266WebServer</em>" or the "<em>on::WebServer</em>" function is the same as when using ESP8266WebServer/WebServer natively.</p>
  627. <h4 id="7-use-either-esp8266webserverhandleclientwebserverhandleclient-or-autoconnecthandleclient">7. Use either ESP8266WebServer::handleClient()/WebServer::handleClient() or AutoConnect::handleClient()<a class="headerlink" href="#7-use-either-esp8266webserverhandleclientwebserverhandleclient-or-autoconnecthandleclient" title="Permanent link">&para;</a></h4>
  628. <p>Both classes member function name is the same: <em>handleClient</em>, but the behavior is different. Using the AutoConnect embedded along with ESP8266WebServer::handleClient/WebServer::handleClient has limitations. Refer to the below section for details. </p>
  629. <h3 id="esp8266webserverwebserver-hosted-or-parasitic"><i class="fa fa-caret-right"></i> ESP8266WebServer/WebServer hosted or parasitic<a class="headerlink" href="#esp8266webserverwebserver-hosted-or-parasitic" title="Permanent link">&para;</a></h3>
  630. <p>The interoperable process with an ESP8266WebServer/WebServer depends on the parameters of the <a href="api.html#constructors">AutoConnect constructor</a>.</p>
  631. <table>
  632. <thead>
  633. <tr>
  634. <th>Declaration parameter for the constructor</th>
  635. <th>Use ESP8266WebServer::handleClient or WebServer::handleClient only</th>
  636. <th>Use AutoConnect::handleClient</th>
  637. </tr>
  638. </thead>
  639. <tbody>
  640. <tr>
  641. <td><a href="api.html#constructors">None</a></td>
  642. <td>AutoConnect menu not available.<br>To use AutoConnect menu, need <a href="api.html#handlerequest">AutoConnect::handleRequest()</a>.<br>also to use ESP8266WebServer/WebServer natively, need <a href="api.html#host">AutoConnect::host()</a>.</td>
  643. <td>AutoConnect menu available.<br>To use ESP8266WebServer/WebServer natively, need <a href="api.html#host">AutoConnect::host()</a>.</td>
  644. </tr>
  645. <tr>
  646. <td><a href="api.html#withparameter">Reference to ESP8266WebServer/WebServer</a></td>
  647. <td>AutoConnect menu not available.<br>To use AutoConnect menu, need <a href="api.html#handlerequest">AutoConnect::handleRequest()</a>.</td>
  648. <td>AutoConnect menu available.</td>
  649. </tr>
  650. </tbody>
  651. </table>
  652. <ul>
  653. <li>
  654. <p><strong>By declaration for the AutoConnect variable with no parameter</strong>: The ESP8266WebServer/WebServer instance is hosted by AutoConnect automatically then the Sketches use <a href="api.html#host"><em>AutoConnect::host</em></a> as API to get it after <a href="api.html#begin"><em>AutoConnect::begin</em></a> performed.</p>
  655. </li>
  656. <li>
  657. <p><strong>By declaration for the AutoConnect variable with the reference of ESP8266WebServer/WebServer</strong>: AutoConnect will use it. the Sketch can use it is too.</p>
  658. </li>
  659. <li>
  660. <p><strong>In use ESP8266WebServer::handleClient()/WebServer::handleClient()</strong>: AutoConnect menu can be dispatched but not works normally. It is necessary to call <a href="api.html#void-handlerequest"><em>AutoConnect::handleRequest</em></a> after <em>ESP8255WebServer::handleClient</em>/<em>WebServer::handleClient</em> invoking.</p>
  661. </li>
  662. <li>
  663. <p><strong>In use <a href="api.html#void-handleclient">AutoConnect::handleClient()</a></strong>: The handleClient() process and the AutoConnect menu is available without calling <em>ESP8266WebServer::handleClient</em>.</p>
  664. </li>
  665. </ul>
  666. <div class="admonition info">
  667. <p class="admonition-title">Why AutoConnect::handleRequest is needed when using ESP8266WebServer::handleClient/WebServer::handleClient</p>
  668. <p>The AutoConnect menu function may affect WiFi connection state. It follows that the menu process must execute outside <em>ESP8266WebServer::handleClient</em> and <em>WebServer::handleClient</em>.<br />
  669. <a href="api.html#void-handleclient"><em>AutoConnect::handleClient</em></a> is equivalent <em>ESP8266WebServer::handleClient</em> and <em>WEbServer::handleClient</em> included <a href="api.html#void-handlerequest"><em>AutoConnect::handleRequest</em></a>.</p>
  670. </div>
  671. <div class="footnote">
  672. <hr />
  673. <ol>
  674. <li id="fn:1">
  675. <p>Each <em>VARIABLE</em> conforms to the actual declaration in the Sketches.&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
  676. </li>
  677. <li id="fn:2">
  678. <p>WiFi SSID and Password can be specified AutoConnect::begin() too.&#160;<a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text">&#8617;</a></p>
  679. </li>
  680. <li id="fn:3">
  681. <p>Replacement the <strong>handleClient</strong> method is not indispensable. AutoConnect can still connect with the captive portal as it is ESP8266WebServer::handleClient. But it can <strong>not valid AutoConnect menu</strong>.&#160;<a class="footnote-backref" href="#fnref:3" title="Jump back to footnote 3 in the text">&#8617;</a></p>
  682. </li>
  683. </ol>
  684. </div>
  685. </article>
  686. </div>
  687. </div>
  688. </main>
  689. <footer class="md-footer">
  690. <div class="md-footer-nav">
  691. <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
  692. <a href="menu.html" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
  693. <div class="md-footer-nav__button md-icon">
  694. <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>
  695. </div>
  696. <div class="md-footer-nav__title">
  697. <div class="md-ellipsis">
  698. <span class="md-footer-nav__direction">
  699. Previous
  700. </span>
  701. AutoConnect menu
  702. </div>
  703. </div>
  704. </a>
  705. <a href="advancedusage.html" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
  706. <div class="md-footer-nav__title">
  707. <div class="md-ellipsis">
  708. <span class="md-footer-nav__direction">
  709. Next
  710. </span>
  711. Advanced usage
  712. </div>
  713. </div>
  714. <div class="md-footer-nav__button md-icon">
  715. <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>
  716. </div>
  717. </a>
  718. </nav>
  719. </div>
  720. <div class="md-footer-meta md-typeset">
  721. <div class="md-footer-meta__inner md-grid">
  722. <div class="md-footer-copyright">
  723. <div class="md-footer-copyright__highlight">
  724. Copyright &copy; 2018-2020 Hieromon Ikasamo
  725. </div>
  726. Made with
  727. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  728. Material for MkDocs
  729. </a>
  730. </div>
  731. <div class="md-footer-social">
  732. <a href="https://github.com/Hieromon" target="_blank" rel="noopener" title="github.com" class="md-footer-social__link">
  733. <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>
  734. </a>
  735. <a href="https://twitter.com/hieromon" target="_blank" rel="noopener" title="twitter.com" class="md-footer-social__link">
  736. <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>
  737. </a>
  738. </div>
  739. </div>
  740. </div>
  741. </footer>
  742. </div>
  743. <script src="assets/javascripts/vendor.fd16492e.min.js"></script>
  744. <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>
  745. <script>
  746. app = initialize({
  747. base: ".",
  748. features: [],
  749. search: Object.assign({
  750. worker: "assets/javascripts/worker/search.4ac00218.min.js"
  751. }, typeof search !== "undefined" && search)
  752. })
  753. </script>
  754. <script src="js/gifffer.min.js"></script>
  755. </body>
  756. </html>