Thu, 04 Jun 2015 14:50:33 +0200
Genesis of lecture sources for Droidcon Berlin 2015 in Postbahnhof.
michael@0 | 1 | <!--- |
michael@0 | 2 | Licensed to the Apache Software Foundation (ASF) under one |
michael@0 | 3 | or more contributor license agreements. See the NOTICE file |
michael@0 | 4 | distributed with this work for additional information |
michael@0 | 5 | regarding copyright ownership. The ASF licenses this file |
michael@0 | 6 | to you under the Apache License, Version 2.0 (the |
michael@0 | 7 | "License"); you may not use this file except in compliance |
michael@0 | 8 | with the License. You may obtain a copy of the License at |
michael@0 | 9 | |
michael@0 | 10 | http://www.apache.org/licenses/LICENSE-2.0 |
michael@0 | 11 | |
michael@0 | 12 | Unless required by applicable law or agreed to in writing, |
michael@0 | 13 | software distributed under the License is distributed on an |
michael@0 | 14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
michael@0 | 15 | KIND, either express or implied. See the License for the |
michael@0 | 16 | specific language governing permissions and limitations |
michael@0 | 17 | under the License. |
michael@0 | 18 | --> |
michael@0 | 19 | |
michael@0 | 20 | # org.apache.cordova.dialogs |
michael@0 | 21 | |
michael@0 | 22 | 這個外掛程式提供了對一些本機對話方塊的使用者介面元素的訪問。 |
michael@0 | 23 | |
michael@0 | 24 | ## 安裝 |
michael@0 | 25 | |
michael@0 | 26 | cordova plugin add org.apache.cordova.dialogs |
michael@0 | 27 | |
michael@0 | 28 | |
michael@0 | 29 | ## 方法 |
michael@0 | 30 | |
michael@0 | 31 | * `navigator.notification.alert` |
michael@0 | 32 | * `navigator.notification.confirm` |
michael@0 | 33 | * `navigator.notification.prompt` |
michael@0 | 34 | * `navigator.notification.beep` |
michael@0 | 35 | |
michael@0 | 36 | ## navigator.notification.alert |
michael@0 | 37 | |
michael@0 | 38 | 顯示一個自訂的警報或對話方塊框。 大多數科爾多瓦實現使用本機對話方塊中的此項功能,但一些平臺使用瀏覽器的 `alert` 函數,這是通常不那麼可自訂。 |
michael@0 | 39 | |
michael@0 | 40 | navigator.notification.alert(message, alertCallback, [title], [buttonName]) |
michael@0 | 41 | |
michael@0 | 42 | |
michael@0 | 43 | * **消息**: 消息對話方塊。*(字串)* |
michael@0 | 44 | |
michael@0 | 45 | * **alertCallback**: 當警報對話方塊的被解雇時要調用的回檔。*(函數)* |
michael@0 | 46 | |
michael@0 | 47 | * **標題**: 標題對話方塊。*(字串)*(可選,預設值為`Alert`) |
michael@0 | 48 | |
michael@0 | 49 | * **buttonName**: 按鈕名稱。*(字串)*(可選,預設值為`OK`) |
michael@0 | 50 | |
michael@0 | 51 | ### 示例 |
michael@0 | 52 | |
michael@0 | 53 | function alertDismissed() { |
michael@0 | 54 | // do something |
michael@0 | 55 | } |
michael@0 | 56 | |
michael@0 | 57 | navigator.notification.alert( |
michael@0 | 58 | 'You are the winner!', // message |
michael@0 | 59 | alertDismissed, // callback |
michael@0 | 60 | 'Game Over', // title |
michael@0 | 61 | 'Done' // buttonName |
michael@0 | 62 | ); |
michael@0 | 63 | |
michael@0 | 64 | |
michael@0 | 65 | ### 支援的平臺 |
michael@0 | 66 | |
michael@0 | 67 | * 亞馬遜火 OS |
michael@0 | 68 | * Android 系統 |
michael@0 | 69 | * 黑莓 10 |
michael@0 | 70 | * 火狐瀏覽器作業系統 |
michael@0 | 71 | * iOS |
michael@0 | 72 | * Tizen |
michael@0 | 73 | * Windows Phone 7 和 8 |
michael@0 | 74 | * Windows 8 |
michael@0 | 75 | |
michael@0 | 76 | ### Windows Phone 7 和 8 怪癖 |
michael@0 | 77 | |
michael@0 | 78 | * 有沒有內置瀏覽器警報,但你可以綁定一個,如下所示調用 `alert()` 在全球範圍內: |
michael@0 | 79 | |
michael@0 | 80 | window.alert = navigator.notification.alert; |
michael@0 | 81 | |
michael@0 | 82 | |
michael@0 | 83 | * 兩個 `alert` 和 `confirm` 的非阻塞的調用,其中的結果才是可用的非同步。 |
michael@0 | 84 | |
michael@0 | 85 | ### 火狐瀏覽器作業系統怪癖: |
michael@0 | 86 | |
michael@0 | 87 | 這兩個本機阻止 `window.alert()` 和非阻塞 `navigator.notification.alert()` 可用。 |
michael@0 | 88 | |
michael@0 | 89 | ## navigator.notification.confirm |
michael@0 | 90 | |
michael@0 | 91 | 顯示一個可自訂的確認對話方塊。 |
michael@0 | 92 | |
michael@0 | 93 | navigator.notification.confirm(message, confirmCallback, [title], [buttonLabels]) |
michael@0 | 94 | |
michael@0 | 95 | |
michael@0 | 96 | * **消息**: 消息對話方塊。*(字串)* |
michael@0 | 97 | |
michael@0 | 98 | * **confirmCallback**: 要用索引 (1、 2 或 3) 按下的按鈕,或者在沒有按下按鈕 (0) 駁回了對話方塊中時調用的回檔。*(函數)* |
michael@0 | 99 | |
michael@0 | 100 | * **標題**: 標題對話方塊。*(字串)*(可選,預設值為`Confirm`) |
michael@0 | 101 | |
michael@0 | 102 | * **buttonLabels**: 指定按鈕標籤的字串陣列。*(陣列)*(可選,預設值為 [ `OK,Cancel` ]) |
michael@0 | 103 | |
michael@0 | 104 | ### confirmCallback |
michael@0 | 105 | |
michael@0 | 106 | `confirmCallback`當使用者按下確認對話方塊中的按鈕之一的時候執行。 |
michael@0 | 107 | |
michael@0 | 108 | 回檔將參數 `buttonIndex` *(編號)*,它是按下的按鈕的索引。 請注意索引使用基於 1 的索引,所以值是 `1` , `2` , `3` ,等等。 |
michael@0 | 109 | |
michael@0 | 110 | ### 示例 |
michael@0 | 111 | |
michael@0 | 112 | function onConfirm(buttonIndex) { |
michael@0 | 113 | alert('You selected button ' + buttonIndex); |
michael@0 | 114 | } |
michael@0 | 115 | |
michael@0 | 116 | navigator.notification.confirm( |
michael@0 | 117 | 'You are the winner!', // message |
michael@0 | 118 | onConfirm, // callback to invoke with index of button pressed |
michael@0 | 119 | 'Game Over', // title |
michael@0 | 120 | ['Restart','Exit'] // buttonLabels |
michael@0 | 121 | ); |
michael@0 | 122 | |
michael@0 | 123 | |
michael@0 | 124 | ### 支援的平臺 |
michael@0 | 125 | |
michael@0 | 126 | * 亞馬遜火 OS |
michael@0 | 127 | * Android 系統 |
michael@0 | 128 | * 黑莓 10 |
michael@0 | 129 | * 火狐瀏覽器作業系統 |
michael@0 | 130 | * iOS |
michael@0 | 131 | * Tizen |
michael@0 | 132 | * Windows Phone 7 和 8 |
michael@0 | 133 | * Windows 8 |
michael@0 | 134 | |
michael@0 | 135 | ### Windows Phone 7 和 8 怪癖 |
michael@0 | 136 | |
michael@0 | 137 | * 有沒有內置的瀏覽器功能的 `window.confirm` ,但你可以將它綁定通過分配: |
michael@0 | 138 | |
michael@0 | 139 | window.confirm = navigator.notification.confirm; |
michael@0 | 140 | |
michael@0 | 141 | |
michael@0 | 142 | * 調用到 `alert` 和 `confirm` 的非阻塞,所以結果就是只可用以非同步方式。 |
michael@0 | 143 | |
michael@0 | 144 | ### 火狐瀏覽器作業系統怪癖: |
michael@0 | 145 | |
michael@0 | 146 | 這兩個本機阻止 `window.confirm()` 和非阻塞 `navigator.notification.confirm()` 可用。 |
michael@0 | 147 | |
michael@0 | 148 | ## navigator.notification.prompt |
michael@0 | 149 | |
michael@0 | 150 | 顯示本機的對話方塊,更可自訂的瀏覽器比 `prompt` 函數。 |
michael@0 | 151 | |
michael@0 | 152 | navigator.notification.prompt(message, promptCallback, [title], [buttonLabels], [defaultText]) |
michael@0 | 153 | |
michael@0 | 154 | |
michael@0 | 155 | * **消息**: 消息對話方塊。*(字串)* |
michael@0 | 156 | |
michael@0 | 157 | * **promptCallback**: 要用索引 (1、 2 或 3) 按下的按鈕,或者在沒有按下按鈕 (0) 駁回了對話方塊中時調用的回檔。*(函數)* |
michael@0 | 158 | |
michael@0 | 159 | * **標題**: 對話方塊的標題*(字串)* (可選,預設值為`Prompt`) |
michael@0 | 160 | |
michael@0 | 161 | * **buttonLabels**: 陣列,這些字串指定按鈕標籤*(陣列)* (可選,預設值為`["OK","Cancel"]`) |
michael@0 | 162 | |
michael@0 | 163 | * **defaultText**: 預設文字方塊中輸入值 ( `String` ) (可選,預設值: 空字串) |
michael@0 | 164 | |
michael@0 | 165 | ### promptCallback |
michael@0 | 166 | |
michael@0 | 167 | `promptCallback`當使用者按下一個提示對話方塊中的按鈕時執行。`results`物件傳遞給回檔的包含以下屬性: |
michael@0 | 168 | |
michael@0 | 169 | * **buttonIndex**: 按下的按鈕的索引。*(人數)*請注意索引使用基於 1 的索引,所以值是 `1` , `2` , `3` ,等等。 |
michael@0 | 170 | |
michael@0 | 171 | * **輸入 1**: 在提示對話方塊中輸入的文本。*(字串)* |
michael@0 | 172 | |
michael@0 | 173 | ### 示例 |
michael@0 | 174 | |
michael@0 | 175 | function onPrompt(results) { |
michael@0 | 176 | alert("You selected button number " + results.buttonIndex + " and entered " + results.input1); |
michael@0 | 177 | } |
michael@0 | 178 | |
michael@0 | 179 | navigator.notification.prompt( |
michael@0 | 180 | 'Please enter your name', // message |
michael@0 | 181 | onPrompt, // callback to invoke |
michael@0 | 182 | 'Registration', // title |
michael@0 | 183 | ['Ok','Exit'], // buttonLabels |
michael@0 | 184 | 'Jane Doe' // defaultText |
michael@0 | 185 | ); |
michael@0 | 186 | |
michael@0 | 187 | |
michael@0 | 188 | ### 支援的平臺 |
michael@0 | 189 | |
michael@0 | 190 | * 亞馬遜火 OS |
michael@0 | 191 | * Android 系統 |
michael@0 | 192 | * 火狐瀏覽器作業系統 |
michael@0 | 193 | * iOS |
michael@0 | 194 | * Windows Phone 7 和 8 |
michael@0 | 195 | |
michael@0 | 196 | ### Android 的怪癖 |
michael@0 | 197 | |
michael@0 | 198 | * Android 支援最多的三個按鈕,並忽略任何更多。 |
michael@0 | 199 | |
michael@0 | 200 | * 關於 Android 3.0 及更高版本,使用全息主題的設備按相反的順序顯示按鈕。 |
michael@0 | 201 | |
michael@0 | 202 | ### 火狐瀏覽器作業系統怪癖: |
michael@0 | 203 | |
michael@0 | 204 | 這兩個本機阻止 `window.prompt()` 和非阻塞 `navigator.notification.prompt()` 可用。 |
michael@0 | 205 | |
michael@0 | 206 | ## navigator.notification.beep |
michael@0 | 207 | |
michael@0 | 208 | 該設備播放提示音聲音。 |
michael@0 | 209 | |
michael@0 | 210 | navigator.notification.beep(times); |
michael@0 | 211 | |
michael@0 | 212 | |
michael@0 | 213 | * **時間**: 的次數重複發出蜂鳴音。*(人數)* |
michael@0 | 214 | |
michael@0 | 215 | ### 示例 |
michael@0 | 216 | |
michael@0 | 217 | // Beep twice! |
michael@0 | 218 | navigator.notification.beep(2); |
michael@0 | 219 | |
michael@0 | 220 | |
michael@0 | 221 | ### 支援的平臺 |
michael@0 | 222 | |
michael@0 | 223 | * 亞馬遜火 OS |
michael@0 | 224 | * Android 系統 |
michael@0 | 225 | * 黑莓 10 |
michael@0 | 226 | * iOS |
michael@0 | 227 | * Tizen |
michael@0 | 228 | * Windows Phone 7 和 8 |
michael@0 | 229 | * Windows 8 |
michael@0 | 230 | |
michael@0 | 231 | ### 亞馬遜火 OS 怪癖 |
michael@0 | 232 | |
michael@0 | 233 | * 亞馬遜火 OS 播放預設**設置/顯示 & 聲音**面板下指定的**通知聲音**。 |
michael@0 | 234 | |
michael@0 | 235 | ### Android 的怪癖 |
michael@0 | 236 | |
michael@0 | 237 | * Android 系統播放的預設**通知鈴聲****設置/聲音和顯示**面板下指定。 |
michael@0 | 238 | |
michael@0 | 239 | ### Windows Phone 7 和 8 怪癖 |
michael@0 | 240 | |
michael@0 | 241 | * 依賴泛型蜂鳴音檔從科爾多瓦分佈。 |
michael@0 | 242 | |
michael@0 | 243 | ### Tizen 怪癖 |
michael@0 | 244 | |
michael@0 | 245 | * Tizen 通過播放音訊檔通過媒體 API 實現會發出蜂鳴聲。 |
michael@0 | 246 | |
michael@0 | 247 | * 蜂鳴音檔必須很短,必須設在 `sounds` 子目錄中的應用程式的根目錄中,並且必須命名`beep.wav`. |