2016-11-21 8 views
0

私はESP8266を使用しています。これはプログラムのHTML部分です。私はインターネットの深みからコピーして貼り付け、ファイルのHTMLページを変更したいと思います。どのようなフォーマットでhtmlコードを追加できますか?ありがとう! (私はテキスト入力フィールドを入れようとしていましたが、後で多くのHTML要素を入れたいと思います)。ESP8266 htmlページコードを.inoファイルに統合

const String HtmlHtml = "<html><head>" 
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /></head>";` 
const String HtmlHtmlClose = "</html>"; 
const String HtmlTitle = "<h1>Arduino-er: ESP8266 AP WebServer exercise</h1><br/>\n"; 
const String HtmlLedStateLow = "<big>LED is now <b>ON</b></big><br/>\n"; 
const String HtmlLedStateHigh = "<big>LED is now <b>OFF</b></big><br/>\n"; 
const String HtmlButtons = 
"<a href=\"LEDOn\"><button style=\"display: block; width: 100%;\">ON</button></a><br/>" 
"<a href=\"LEDOff\"><button style=\"display: block; width: 100%;\">OFF</button></a><br/>"; 
+0

あなたはすべての文字列をターゲットファイルに書きたいと思っています。 ''は、HTML Webページの最初の有効な行ではありません。 ''ブロックはウェブページの最後で終了し、 ''ブロックの終了直後は '通常'ではありません。 ''ブロックには、掲示されている以外にもいくつかのことが必要です。投稿されたコードに「」ブロックがありません。そのブロックはの参照がある場所です。必要なHTMLページの作成を提案し、必要なすべてのステートメントを挿入してファイルに保存するか、またはWebブラウザに表示します。 – user3629249

答えて

0

後で、変数を結合し、htmlをディスパッチするために使用する1つの大きな部分を作成すると仮定します。このようなことをすることができます。あなたのポストからあなたのエディタやコピー/貼り付けコード - オープン

-editそれはあなたが投稿して1で置き換えるコードで

-Delete変数、たとえば

const String wholePage = "INSERT YOUR HTML"; 
をしたいと全体のHTMLコードを

はそれが役に立てば幸いですちょうどあなたの新しいを使用する前に変数を追加した行よりも

- および! :)

+0

ありがとうございましたこれは今、より意味がわかります!そこには、htmlの

テキストフィールドに入力された情報を受け取り、それをeepromに保存し、同じテキストフィールドにパスワードを入力することでウェブページに表示する方法はありますか? –

1

あなたはSPIFFSからHTMLファイルをストリーミングできます。ここでexampleです:

あなたは、以下の表記としてstreamFile()機能を取得する必要があります:

String contentType = "text/html"; 
    if(SPIFFS.exists(path)){ 
    File file = SPIFFS.open(path, "r"); 
    size_t sent = server.streamFile(file, contentType); 
    file.close(); 
    return true; 
    } 
+0

に入力された情報をeepromに保存し、後でそれを表示する方法があります。 –

+0

この例は、ファイル提供方法を​​示しています。これは、読めるhtmlファイルを持つのに役立ちます。このページからあなたのWebサーバーに着信する要求を保存したい場合は、もちろんそれを別のファイルに保存することができます。これを行うには、[guide](https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md)に従ってください。 – cagdas

+0

私はこのコードsnippitでresponseHTMLの代わりにSPIFFS.open(パス、モード)を使用する方法があります:dnsServer.start(DNS_PORT、 "*"、apip); //同じHTMLを持つすべてのリクエストを再生する webServer.onNotFound([{] { webServer.send(200、 "text/html"、responseHTML); }); webServer。ベギン(); } –

0

あなたがエスケープされていない複数行の構文を使用するためにそれをクリーンアップを検討する必要があります:

あなたはまた、C-使いやすくするために、任意のオンラインテキストツーJSONエンコーダーを使用することができます
void handleAbout() { 
    const char* message = R"foo(
    <!doctype html> 
    <html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>test</title> 
    <link rel=stylesheet type=text/css href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css' /> 
    </head><body class=container> 
    <h1>testing</h1> 
    <main> 
    <h3>Status</h3> 
     <ul> 
     <li>Mode: <b>[[MODE]]</b> 
     <li><a href=/reset >reboot device</a> 
     </ul> 
    </main> 
    </body> 
    </html> 
    )foo"; 

    String message2= String(message); 
    // templating replaces string-concat functionality: 
    message2.replace("[[MODE]]", String(inputMode)); 
    // prove it's a usable String to the esp: 
    server.send(200, "text/html", message2); 
} // end about section handler 

は、任意のテキストから文字列リテラルを脱出しました。例:my slim's "JSON.stringify"エンジン変換...

関連する問題