|
217 | 217 | setNamedUser(namedUser) |
218 | 218 | }) |
219 | 219 | }) |
| 220 | + |
| 221 | + var setContactChannelStatus = function(message, isError) { |
| 222 | + var $status = $("#contactChannelStatus") |
| 223 | + $status.text(message) |
| 224 | + $status.css("color", isError ? "#c00" : "#060") |
| 225 | + console.log(isError ? "Contact channel error: " + message : "Contact channel: " + message) |
| 226 | + } |
| 227 | + |
| 228 | + $("#registerEmailOptionsSection").hide() |
| 229 | + $("#registerEmailWithOptions").change(function() { |
| 230 | + if ($("#registerEmailWithOptions").val() === "on") { |
| 231 | + $("#registerEmailOptionsSection").show() |
| 232 | + } else { |
| 233 | + $("#registerEmailOptionsSection").hide() |
| 234 | + } |
| 235 | + }) |
| 236 | + |
| 237 | + $("#registerEmailButton").click(function(ev) { |
| 238 | + var email = $("#registerEmailField").val().trim() |
| 239 | + if (!email) { |
| 240 | + setContactChannelStatus("Email address is required", true) |
| 241 | + return |
| 242 | + } |
| 243 | + |
| 244 | + var onSuccess = function() { |
| 245 | + setContactChannelStatus("Registered email: " + email, false) |
| 246 | + } |
| 247 | + var onError = function(err) { |
| 248 | + setContactChannelStatus("registerEmail failed: " + err, true) |
| 249 | + } |
| 250 | + |
| 251 | + if ($("#registerEmailWithOptions").val() === "on") { |
| 252 | + var options = { |
| 253 | + transactionalOptedIn: Date.now(), |
| 254 | + properties: { source: "cordova-example" } |
| 255 | + } |
| 256 | + if ($("#registerEmailDoubleOptIn").val() === "on") { |
| 257 | + options.doubleOptIn = true |
| 258 | + } |
| 259 | + if ($("#registerEmailCommercialOptIn").val() === "on") { |
| 260 | + options.commercialOptedIn = Date.now() |
| 261 | + } |
| 262 | + Airship.contact.registerEmail(email, options, onSuccess, onError) |
| 263 | + } else { |
| 264 | + Airship.contact.registerEmail(email, {}, onSuccess, onError) |
| 265 | + } |
| 266 | + }) |
| 267 | + |
| 268 | + $("#registerSMSButton").click(function(ev) { |
| 269 | + var msisdn = $("#registerSMSField").val().trim() |
| 270 | + var senderId = $("#registerSMSSenderIdField").val().trim() |
| 271 | + if (!msisdn) { |
| 272 | + setContactChannelStatus("MSISDN is required", true) |
| 273 | + return |
| 274 | + } |
| 275 | + if (!senderId) { |
| 276 | + setContactChannelStatus("Sender ID is required", true) |
| 277 | + return |
| 278 | + } |
| 279 | + |
| 280 | + Airship.contact.registerSMS(msisdn, { senderId: senderId }, function() { |
| 281 | + setContactChannelStatus("Registered SMS: " + msisdn, false) |
| 282 | + }, function(err) { |
| 283 | + setContactChannelStatus("registerSMS failed: " + err, true) |
| 284 | + }) |
| 285 | + }) |
220 | 286 | } |
221 | 287 |
|
222 | 288 | document.addEventListener("deviceready", onDeviceReady, false) |
|
245 | 311 | <input type="text" name="setNamedUserField" id="setNamedUserField" style="width:96.5%;" /> <input type="button" id="setNamedUserButton" value="Set namedUser" /> |
246 | 312 | </div> |
247 | 313 |
|
| 314 | + <center><h3>Contact Channels</h3></center> |
| 315 | + <div data-role="fieldcontain"> |
| 316 | + <label for="registerEmailField">Email</label> |
| 317 | + <input type="email" name="registerEmailField" id="registerEmailField" style="width:96.5%;" placeholder="your@example.com" /> |
| 318 | + <div data-role="controlgroup"> |
| 319 | + <label for="registerEmailWithOptions">Use custom options</label> |
| 320 | + <select name="registerEmailWithOptions" id="registerEmailWithOptions" data-role="slider" data-theme="c" data-track-theme="c"> |
| 321 | + <option value="off">Off</option> |
| 322 | + <option value="on">On</option> |
| 323 | + </select> |
| 324 | + </div> |
| 325 | + <div id="registerEmailOptionsSection"> |
| 326 | + <div data-role="controlgroup"> |
| 327 | + <label for="registerEmailCommercialOptIn">Commercial opt-in date</label> |
| 328 | + <select name="registerEmailCommercialOptIn" id="registerEmailCommercialOptIn" data-role="slider" data-theme="c" data-track-theme="c"> |
| 329 | + <option value="off">Off</option> |
| 330 | + <option value="on">On</option> |
| 331 | + </select> |
| 332 | + </div> |
| 333 | + <div data-role="controlgroup"> |
| 334 | + <label for="registerEmailDoubleOptIn">Double opt-in</label> |
| 335 | + <select name="registerEmailDoubleOptIn" id="registerEmailDoubleOptIn" data-role="slider" data-theme="c" data-track-theme="c"> |
| 336 | + <option value="off">Off</option> |
| 337 | + <option value="on">On</option> |
| 338 | + </select> |
| 339 | + </div> |
| 340 | + </div> |
| 341 | + <input type="button" id="registerEmailButton" value="Register email" /> |
| 342 | + </div> |
| 343 | + |
| 344 | + <div data-role="fieldcontain"> |
| 345 | + <label for="registerSMSField">MSISDN</label> |
| 346 | + <input type="tel" name="registerSMSField" id="registerSMSField" style="width:96.5%;" placeholder="+15551234567" /> |
| 347 | + <label for="registerSMSSenderIdField">Sender ID</label> |
| 348 | + <input type="text" name="registerSMSSenderIdField" id="registerSMSSenderIdField" style="width:96.5%;" placeholder="senderId" /> |
| 349 | + <input type="button" id="registerSMSButton" value="Register SMS" /> |
| 350 | + </div> |
| 351 | + |
| 352 | + <div data-role="fieldcontain"> |
| 353 | + <label>Status</label> |
| 354 | + <span id="contactChannelStatus" style="word-wrap: break-word;"></span> |
| 355 | + </div> |
| 356 | + |
248 | 357 | <div data-role="controlgroup"> |
249 | 358 | <label for="pushEnabled">Push Enabled</label> |
250 | 359 | <select name="pushEnabled" id="pushEnabled" data-role="slider" data-theme="c" data-track-theme="c"> |
|
0 commit comments