{"id":292,"date":"2007-07-17T12:46:35","date_gmt":"2007-07-17T10:46:35","guid":{"rendered":"http:\/\/www.iphone-ticker.de\/2007\/07\/17\/data-urls-web-apps-auf-dem-iphone-speichern\/"},"modified":"2007-07-17T12:50:35","modified_gmt":"2007-07-17T10:50:35","slug":"data-urls-web-apps-auf-dem-iphone-speichern","status":"publish","type":"post","link":"https:\/\/www.iphone-ticker.de\/data-urls-web-apps-auf-dem-iphone-speichern-292\/","title":{"rendered":"Data-URLs: Web-Apps auf dem iPhone speichern"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/www.iphone-ticker.de\/wp-content\/uploads\/2007\/07\/dataurl.jpg\" alt=\"dataurl.jpg\" align=\"right\" \/> <a href=\"http:\/\/blog.clawpaws.net\/post\/2007\/07\/16\/Storing-iPhone-apps-locally-with-data-URLs\" target=\"_blank\">Hier<\/a> hat jemand mal wirklich um die Ecke gedacht.<\/p>\n<p><strong>Vorneweg eine kurze Erl\u00e4uterung:<\/strong><br \/>\nSafari auf dem iPhone ist, wie auch fast jeder Desktop-Browser, in der Lage eigene Bookmarks zu speichern. Neben den &#8222;normalen&#8220; Links, so wie wir sie gewohnt sind, gibt es zus\u00e4tzlich die <a href=\"http:\/\/en.wikipedia.org\/wiki\/Data:_URI_scheme\" target=\"_blank\">Data-Urls<\/a>. Data-URLs selbst, zeigen nicht auf eine bestimmte Seite im Internet sondern beinhalten bereits s\u00e4mtlichen Code der im Browser angezeigten Informationen.<\/p>\n<p><strong>Immer noch zu tricky? Hier ein Beispiel:<\/strong><br \/>\nSpeichert man sich <a href=\"data:text\/html;base64,PGh0bWw+CjxoZWFkPgo8dGl0bGU+SGFsbG8gV0VMVDwvdGl0bGU+Cjxib2R5Pgo8Y2VudGVyPgo8aDE+SEFMTE8gV0VMVDwvaDE+Cjxicj48YnI+CjxlbT50ZXN0PC9lbT48Yj50ZXN0PC9iPjxicj5FaW4ga2xlaW5lciBEYXRhLVVSTCBUZXN0IHZvbiA8YnI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuaXBob25lLXRpY2tlci5kZSI+aVBob25lLVRpY2tlci5kZTwvYT48L2NlbnRlcj4KPC9ib2R5Pgo8L2h0bWw+\">diesen Link<\/a> als Bookmark in seinem Browser, so besucht man nach dem Klick keine Internetseite, sondern hat den ganzen Code der angezeigten Seite bereits Lokal in seinem Bookmark gespeichert. Das ganze funktioniert auch mit komplexeren &#8222;Anwendungen&#8220; wie z.B. einem <a href=\"data:text\/html;charset=utf-8;base64,PGh0bWw+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGggPSAyNDAiIC8+Cjx0aXRsZT5UaXAgQ2FsY3VsYXRvcjwvdGl0bGU+Cgo8c2NyaXB0PgoKZnVuY3Rpb24gdGlwKGFtb3VudCkgewogICAgcmV0dXJuIHRpcDsKfQoKdmFyIG91dHB1dCA9IG51bGw7CnZhciBwZXJjZW50ID0gMTguNSAvIDEwMDsKdmFyIHJ0aXBfZmFjdG9yID0gMC4yNTsKdmFyIHJ0b3RhbF9mYWN0b3IgPSAxLjAwOwoKZnVuY3Rpb24gd3JpdGVPdXQobGluZSkgewogICBpZiAob3V0cHV0KSB7CiAgICAgIG91dHB1dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKICAgfSBlbHNlIHsKICAgICAgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dEFyZWEiKTsKICAgfQogICBvdXRwdXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOwp9CgpmdW5jdGlvbiB1cGRhdGUoKQp7CiAgICB2YXIgYW1vdW50ID0gTnVtYmVyKGV2YWwoaW5Gb3JtLm51bS52YWx1ZSkpOwogICAgaWYgKGFtb3VudCA9PSBOYU4pIHsKICAgICAgICB3cml0ZU91dCgnSHVoPycpOwogICAgfQogICAgdmFyIHRpcCAgPSBhbW91bnQgKiBwZXJjZW50OwogICAgdmFyIHJ0aXAgPSBNYXRoLnJvdW5kKHRpcCAvIHJ0aXBfZmFjdG9yKSAqIHJ0aXBfZmFjdG9yOwogICAgd3JpdGVPdXQoJyQnICsgYW1vdW50LnRvRml4ZWQoMikgKyAnICsgJCcgKyBydGlwLnRvRml4ZWQoMikgKyAnID0gJCcgKyAoYW1vdW50K3J0aXApLnRvRml4ZWQoMikpOwogICAgdmFyIHJ0b3RhbCA9IE1hdGgucm91bmQoKGFtb3VudCArIHRpcCkgLyBydG90YWxfZmFjdG9yICsgMC4yNSkgKiBydG90YWxfZmFjdG9yOwogICAgd3JpdGVPdXQoJyQnICsgYW1vdW50LnRvRml4ZWQoMikgKyAnICsgJCcgKyAocnRvdGFsLWFtb3VudCkudG9GaXhlZCgyKSArICcgPSAkJyArIHJ0b3RhbC50b0ZpeGVkKDIpKTsKICAgIAp9CgpmdW5jdGlvbiB6YXAoZmllbGQpIHsKICAgIGlmICghIGZpZWxkLnphcHBlZCApIHsKICAgICAgICBmaWVsZC56YXBwZWQgPSB0cnVlOwogICAgICAgIGZpZWxkLnZhbHVlICA9ICIiOwogICAgfQp9Cgo8L3NjcmlwdD4KCjwvaGVhZD4KPGJvZHk+Cgo8aDE+VGlwIENhbGN1bGF0b3I8L2gxPgoKPHA+CkVudGVyIGFmdGVyLXRheCB0b3RhbDoKPC9wPgo8Zm9ybSBuYW1lPSJpbkZvcm0iIG9uU3VibWl0PSJ1cGRhdGUoKTsgcmV0dXJuIGZhbHNlOyI+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJudW0iIG9uRm9jdXM9InphcCh0aGlzKSIgdmFsdWU9IjI0LjM3IiAvPgo8aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJidXR0b24iIG9uQ2xpY2s9InVwZGF0ZSgpOyIgdmFsdWU9IlRpcCIgLz4KPC9mb3JtPgoKPHAgaWQ9Im91dHB1dEFyZWEiPgo8L3A+Cgo8L2JvZHk+CjwvaHRtbD4=\">Tip-Calculator<\/a>.<\/p>\n<p>Mit dieser Info im Hinterkopf l\u00e4sst sich nun verdammt viel anstellen.<!--more--><\/p>\n<p>Komplette iPhone-Apps k\u00f6nnten in Data-URLs konvertiert werden und sich so lokal auf dem iPhone speichern lassen. So k\u00f6nnten sich auch ohne GPRS-, EDGE- bzw. W-Lan-Verbindung, kleine Spiele spielen oder das Trinkgeld beim n\u00e4chsten Kneipenbesuch berechnen lassen.<\/p>\n<p>Nat\u00fcrlich haben die M\u00f6glichkeiten der Data-URLs auch ihre Grenzen. CSS und Javascript-Dateien m\u00fcssen im Quelltext eingebettet sein und lassen sich nicht verlinken, Bilder selbst m\u00fcssen auch im Data-URL Format vorliegen und irgendwann kommt auch der zur Verf\u00fcgung stehende Speicher an seine Grenzen.<\/p>\n<p>Erfolgreich getestet wurde bereits eine 363,488 byte gro\u00dfe Data-URL und erste Entwickler-Tools gibt es auch schon. <a href=\"data:text\/html;base64,PGh0bWw+CjxoZWFkPgo8dGl0bGU+RGF0YSBVUkwgRGV2ZWxvcGVyPC90aXRsZT4KPHNjcmlwdD4KdmFyIGdlbmJ1dHRvbiA9ICI8YnV0dG9uIG9uY2xpY2s9XCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXJpJykuaW5uZXJIVE1MPW1ha2VEYXRhTGluaygnVVJMJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQnKS52YWx1ZSk7XCI+R2VuZXJhdGUgREFUQSBVUkw8L2J1dHRvbj4iOwpmdW5jdGlvbiBtYWtlRGF0YUxpbmsgKGxpbmssIGhyZWYpIHsgCiAgcmV0dXJuICc8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iZGF0YTp0ZXh0L2h0bWw7YmFzZTY0LCcrd2luZG93LmJ0b2EoaHJlZikgKyAnIj4nICsgbGluayArICc8L2E+JzsKfQpmdW5jdGlvbiBmZXRjaERhdGFMaW5rIChsaW5rKSB7CiAgdHJ5IHsKICAgIHZhciBtID0gbGluay5tYXRjaCAoL14oKGRhdGE6fGNoYXJzZXQ9KVteO10rOykqKGJhc2U2NCwpPyguKykkL2kpOwogICAgcmV0dXJuIGF0b2IobVs0XSk7CiAgfSBjYXRjaCAoZSkgewogICAgLy8gYWxlcnQgKGUgKyAiXG4iICsgbGluayArICdcbiInICsgbS5qb2luICgnIlxuIicpICsgJyInKTsKICAgIHJldHVybiAnJzsKICB9Cn0gCjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5IG9ubG9hZCA9ICIKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dCcpLnZhbHVlID0gZmV0Y2hEYXRhTGluayh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VyaScpLmlubmVySFRNTD1nZW5idXR0b247CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VyaScpLmZpcnN0Q2hpbGQub25jbGljaygpOyI+CjxpbnB1dCBpZD0ndXJsJz4KPGJ1dHRvbiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dCcpLnZhbHVlID0gZmV0Y2hEYXRhTGluayhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXJsJykudmFsdWUpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cmknKS5pbm5lckhUTUw9Z2VuYnV0dG9uOwoiPkRlY29kZSBEYXRhIFVSTDwvYnV0dG9uPgo8aHIvPgo8dGV4dGFyZWEgaWQ9InRleHQiIAogIGNvbHM9IjUwIiAKICByb3dzPSIyMCIKICBvbmtleWRvd249ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cmknKS5pbm5lckhUTUw9Z2VuYnV0dG9uIj4KPC90ZXh0YXJlYT48YnIvPjxici8+CjxwIGlkPSJ1cmkiPjwvcD4KPC9ib2R5Pgo8L2h0bWw+\">Dieser Link<\/a> (selbst auch eine Data-URL) zeigt den Quelltext der Seite in einer Text_Box. Diese l\u00e4sst sich nun nach belieben editieren und im Anschluss dann selbst in eine Data-URL konvertieren und so auf dem iPhone speichern.<\/p>\n","protected":false},"excerpt":{"rendered":"<a href=\"https:\/\/www.iphone-ticker.de\/data-urls-web-apps-auf-dem-iphone-speichern-292\/\"><img width=\"150\" height=\"114\" src=\"https:\/\/images.iphone-ticker.de\/wp-content\/uploads\/2007\/07\/dataurl.jpg\" class=\"alignright tfe wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/a><p>Hier hat jemand mal wirklich um die Ecke gedacht. Vorneweg eine kurze Erl\u00e4uterung: Safari auf dem iPhone ist, wie auch fast jeder Desktop-Browser, in der Lage eigene Bookmarks zu speichern. Neben den &#8222;normalen&#8220; Links, so wie wir sie gewohnt sind, gibt es zus\u00e4tzlich die Data-Urls. Data-URLs selbst, zeigen nicht auf eine bestimmte Seite im Internet [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":293,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3914,55,43,33],"class_list":["post-292","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-apps","tag-diy","tag-hacks","tag-tutorial"],"aioseo_notices":[],"rest_api_enabler":[],"_links":{"self":[{"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/posts\/292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/comments?post=292"}],"version-history":[{"count":0,"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/posts\/292\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/media\/293"}],"wp:attachment":[{"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/media?parent=292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/categories?post=292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iphone-ticker.de\/apiv2\/wp\/v2\/tags?post=292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}