Acknowledgments | p. xiii |
Introduction | p. xv |
Introducing WAP | p. 1 |
What Is WAP? | p. 2 |
Why is WAP Important? | p. 3 |
WAP's Benefits for Consumers | p. 5 |
A History of WAP | p. 6 |
A Time Before WAP | p. 6 |
The WAP Forum | p. 7 |
The Idea of WAP | p. 7 |
WAP Architecture | p. 8 |
The WAP Model | p. 9 |
Wireless Markup Language (WML) | p. 10 |
Evolution of WAP | p. 10 |
Adapting to the Restrictions of the Wireless Network | p. 10 |
The Business Case for WAP | p. 15 |
WAP Services | p. 15 |
Why WAP? | p. 20 |
The Future of WAP | p. 21 |
What Makes a Good WAP Application? | p. 23 |
The User's Point of View | p. 24 |
Ease of Use | p. 25 |
Designing for Users | p. 25 |
What Are the WAP Micro-Browser Issues Today? | p. 27 |
Writing a Genetic WML Interface | p. 28 |
Targeting Your Market Micro-Browser | p. 29 |
How to Design a Good WAP Application | p. 30 |
The Application-Design Process | p. 32 |
Common Design Mistakes | p. 37 |
The User Interface | p. 39 |
User Interface Basic | p. 40 |
Low Bandwidth | p. 42 |
Small Screen Size | p. 42 |
Text Entry | p. 43 |
Number of Keystrokes | p. 43 |
Password Text Entry | p. 44 |
Application Personalization | p. 44 |
Data Field Entry | p. 45 |
Using the Cache | p. 45 |
Types of WML Cards | p. 47 |
Choice Cards | p. 47 |
Entry Cards | p. 49 |
Display Cards | p. 49 |
The "Back" Button | p. 50 |
Graphics | p. 51 |
WAP Development Tools and Software | p. 53 |
Editors and Emulators | p. 55 |
WAP Editors | p. 55 |
WAP Emulators | p. 58 |
Software Developer Kits (SDKs) and Integrated Development Environments (IDEs) | p. 60 |
Converting Images | p. 62 |
Specification of Well-Defined WBMP Types | p. 62 |
Summary | p. 63 |
Working with WML | p. 65 |
WML Basics | p. 66 |
WAP and the Web | p. 67 |
Writing WML Code | p. 68 |
The "Hello World" Example | p. 70 |
The Document Prologue | p. 70 |
The Deck Header | p. 72 |
The First Card | p. 72 |
The Second Card | p. 72 |
The Deck Footer | p. 73 |
A Services Site Example | p. 73 |
Using Multiple Decks | p. 73 |
Building the Services Site | p. 74 |
What's in a Card | p. 75 |
Graphics | p. 76 |
The Services Site with Graphics | p. 78 |
Creating Links | p. 80 |
The WML Site with Links | p. 81 |
Templates | p. 83 |
Interactivity: Forms and User Input | p. 85 |
The Options Menu (Select) | p. 86 |
Selection on the Nokia | p. 87 |
Selection on Phone.com | p. 88 |
Option Groups | p. 88 |
Templates Revisited | p. 92 |
The Do Element | p. 94 |
Events | p. 98 |
Onenterbackward | p. 98 |
Onenterforward | p. 101 |
Onpick | p. 102 |
Ontimer | p. 103 |
Variables | p. 104 |
Using Variables | p. 105 |
Other Ways of Setting Variables | p. 108 |
The Input Tag | p. 110 |
Data Formatting | p. 112 |
Summary | p. 116 |
Adding Functionality with WMLScript | p. 117 |
What is WMLScript? | p. 118 |
The Rules of WMLScript | p. 119 |
Case Sensitivity | p. 120 |
Whitespace and Line Breaks | p. 120 |
Comments | p. 120 |
Statements | p. 122 |
Code Blocks | p. 122 |
Variables | p. 123 |
Variable Scope | p. 124 |
Operators | p. 124 |
Assignment Operator | p. 125 |
Arithmetic Operators | p. 125 |
Bitwise Operators | p. 126 |
Increment and Decrement Operators | p. 126 |
Logical Operators | p. 128 |
Comparison Operators | p. 129 |
String Concatenation | p. 131 |
The Comma | p. 131 |
The typeof Operator | p. 132 |
The isvalid Operator | p. 133 |
The Conditional Operator | p. 133 |
Operator Precedence | p. 134 |
Control Constructs | p. 135 |
If Statements | p. 135 |
While Statements | p. 137 |
For Statements | p. 137 |
Stopping Loops or Skipping Unnecessary Loop Statements | p. 138 |
Reserved Words | p. 140 |
Functions | p. 141 |
Parameters | p. 141 |
Calling Functions | p. 142 |
The Standard Libraries | p. 145 |
The Dialogs Library | p. 146 |
The Float Library | p. 146 |
The Lang Library | p. 147 |
The String Library | p. 149 |
The URL Library | p. 150 |
The WML Browser Library | p. 152 |
Arrays | p. 152 |
Pragmas | p. 154 |
External Files | p. 155 |
Access Control | p. 156 |
Metadata | p. 157 |
General Coding Principles | p. 157 |
Database-Driven WAP | p. 159 |
Active Server Pages | p. 161 |
ASP and WAP | p. 162 |
The ASP Object Model | p. 164 |
ActiveX Data Objects (ADO) | p. 168 |
Physically Connecting to the Database | p. 168 |
Querying the Database | p. 169 |
Using the Returned Data | p. 169 |
Tidying Up | p. 170 |
Some Additional Notes about Connections | p. 170 |
A Dynamic WAP Application | p. 171 |
Worldwide-Dance-Web for WAP | p. 172 |
Data Flow | p. 172 |
Building the Database | p. 173 |
Writing the Code | p. 176 |
Summary | p. 193 |
Converting Existing Web Sites | p. 195 |
Why Convert an Existing HTML Web Site to WAP? | p. 196 |
What Should You Convert? | p. 196 |
Methods of Conversion | p. 197 |
A Demonstration HTML Conversion | p. 202 |
Summary | p. 210 |
M-Commerce and Security | p. 213 |
Types of Security and Why It Is Necessary | p. 214 |
What Is an Acceptable Level of Security? | p. 215 |
How Secure Is WAP? | p. 215 |
A Brief History of Encryption | p. 216 |
Cryptography | p. 216 |
Wireless Transport Layer Security | p. 219 |
The Handshake | p. 220 |
Summary | p. 221 |
Push Technology and Telematics | p. 223 |
Push Technology | p. 224 |
The Push Framework | p. 224 |
Telematics | p. 228 |
Location-Sensitive Information | p. 228 |
Applications for Telematics | p. 229 |
Push and Telematics Together | p. 230 |
User Privacy | p. 231 |
Summary | p. 231 |
What the Future Holds | p. 233 |
Technology with Users in Mind | p. 234 |
Bluetooth--Cutting the Cords | p. 235 |
Voice XML--a New Slant on "Walkie/Talkie" | p. 237 |
Telematics--We Know Where You Are | p. 238 |
Bringing It All Together | p. 239 |
WMLScript Reference | p. 241 |
Case Sensitivity | p. 242 |
Whitespace and Line Breaks | p. 242 |
Comments | p. 243 |
Constants | p. 244 |
Integer Constants | p. 244 |
Floating-point Constants | p. 244 |
String Constants | p. 245 |
Boolean Variables | p. 246 |
Invalid Variables | p. 246 |
Reserved Words | p. 247 |
Variables | p. 248 |
Variable Declaration | p. 248 |
Variable Scope and Lifetime | p. 248 |
Data Types | p. 249 |
Pragmas | p. 250 |
External Files | p. 250 |
Access Control | p. 251 |
Metadata | p. 252 |
Operators | p. 253 |
Assignment Operators | p. 253 |
Arithmetic Operators | p. 254 |
Logical Operators | p. 255 |
String Operators | p. 256 |
Comparison Operators | p. 256 |
Comma Operator | p. 257 |
Conditional Operator | p. 258 |
typeof Operator | p. 258 |
isvalid Operator | p. 259 |
Expressions | p. 259 |
Functions | p. 260 |
Function Declarations | p. 260 |
Function Calls | p. 260 |
Statements | p. 262 |
Empty Statements | p. 262 |
Expression Statements | p. 262 |
Block Statements | p. 262 |
Variable Statements | p. 263 |
If Statements | p. 263 |
While Statements | p. 264 |
For Statements | p. 264 |
Break Statements | p. 265 |
Continue Statements | p. 265 |
Return Statements | p. 266 |
Libraries | p. 266 |
Notational Conventions | p. 266 |
Lang Library | p. 267 |
Float Library | p. 272 |
String Library | p. 275 |
URL Library | p. 284 |
WML Browser Library | p. 290 |
Dialogs Library | p. 293 |
Console Library | p. 295 |
Glossary | p. 297 |
Index | p. 307 |
Table of Contents provided by Syndetics. All Rights Reserved. |