OnsenUI

Ein Javascript Framework für WebApp Development | Entwicklung, Mini-HowTo:

Unser Grundannahme ist dass Ihr Cordova verwendet, darin integriert Ihr dann folgendes… .

Framework herunterladen @ https://onsen.io/ und lokal z.B. in den Cordova-www-Ordner „onsenui“ legen.

In den Header gehört dann Folgendes:

<link rel="stylesheet" href="onsenui/css/onsenui.css">
  <link rel="stylesheet" href="onsenui/css/onsen-css-components.min.css">
  <script src="onsenui/js/onsenui.min.js"></script>

Beispiel-Seite in die index.html kopieren:

<ons-navigator swipeable id="myNavigator" page="page1.html"></ons-navigator>

<template id="page1.html">
  <ons-page id="page1">
    <ons-toolbar>
      <div class="center">Page 1</div>
    </ons-toolbar>

    <p>This is the first page.</p>

    <ons-button id="push-button">Push page</ons-button>
  </ons-page>
</template>

<template id="page2.html">
  <ons-page id="page2">
    <ons-toolbar>
      <div class="left"><ons-back-button>Page 1</ons-back-button></div>
      <div class="center"></div>
    </ons-toolbar>

    <p>This is the second page.</p>
  </ons-page>
</template>

dazu gehört dann noch folgender Javascript Code, entweder direkt in die Site kopieren oder in einen separate Javascript-Datei, z.B. onsen.custom.js

document.addEventListener('init', function(event) {
  var page = event.target;

  if (page.id === 'page1') {
    page.querySelector('#push-button').onclick = function() {
      document.querySelector('#myNavigator').pushPage('page2.html', {data: {title: 'Page 2'}});
    };
  } else if (page.id === 'page2') {
    page.querySelector('ons-toolbar .center').innerHTML = page.data.title;
  }
});

Wichtig, wenn Ihr den folgenden Fehler erhaltet:

[Error] Refused to execute a script because its hash, its nonce, or ‚unsafe-inline‘ appears in neither the script-src directive nor the default-src directive of the Content Security Policy. (onsen.html, line 41)

Dann ergänzt Content-Security-Policy in der Meta-Info um:

 'unsafe-inline'

So lautet es dann:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">