Developers
AvantGo Channel Developer Guide

View PDF Version

Table of Contents



Before you begin


CHAPTER 1. About this guide

    Focus of this guide

    Conventions

    Related publications


CHAPTER 2. Introduction to channel development

    Overview

    What is an AvantGo channel?

    AvantGo channel development vs. desktop web development

        Hardware differences

        AvantGo limitations

        Offline differences

    Channel FAQ

        1. Basic questions

        2. Advanced topics (custom content, managing server load, PODS)

        3. AvantGo Client wireless

        4. Promotions and page tracking

        5. The state of JavaScript

        6. Security

        7. Other

    The AvantGo Channel Creation Checklist



Channel basics


CHAPTER 3. Creating and testing a channel

    Overview

    Creating your first channel

        Making web pages available

        Specifying channel settings

        Viewing your channel

        Changing channel settings later

    Testing your AvantGo channel

        Syncing just one channel

        Testing on emulators

        Testing on different devices

    Channel troubleshooting and debugging tips

        "This page is not available..." message on your test device

        "This page is not available..." message on another device

        Not sure cookie is being set properly in your channel

        Tips for debugging cookies

        Need to remove all cookie information from your AvantGo account

        Server timeouts encountered

        Not sure forms are being sent properly

        Only last offline submission of same form "works"

        Caching prevents me from counting user syncs


CHAPTER 4. Creating channel content

    Overview

    Designing the channel site

        Choosing content

        Organizing pages

        Considering mode: online or offline

        Size limit issues

        AvantGo sync server limits

        Your channel's Maximum Channel Size limit

        User limitations

        Pages are returned in upredictable order

        Avoiding grabbing pages multiple times

        Downloading a page beyond channel's Link Depth

        Channel caching

    Designing pages for the channel site

        Page layout

        HandheldFriendly meta tag

        Available HTML in AvantGo Client 4.x

        Unavailable HTML in AvantGo Client 4.x

        Available HTML in AvantGo Client 5.x

        Using the TITLE tag

        Using tables judiciously

        Using forms

        Designing pages for multiple devices

        Personalizing pages for different users

        Using Form and JavaScript elements

    Designing graphics for channel pages

        Image size

        Image detail

        Image colors

        Guidelines for color images on color devices

        Guidelines for color images on grayscale devices

        Designing images

        Alt tags

        Image maps

        Breaking the 150-pixel limit



Tips and tricks


CHAPTER 5. Caching to improve channel performance

    Overview

    Introduction to caching

        How caching works — the concept

        How caching works — technical details

    Caching strategies

        Cache a page for less time than the period in which it changes

        Do not cache personalized pages

    Implementing caching

        Using Cache-Control headers

        Using Expires headers

        Using META HTTP-EQUIV tags

        What about META Expires tags?

    Adding HTTP headers to your channel pages

        Special note for Apache webmasters

        Non-Apache servers

        Server under control of your ISP

    Caching personalized content on user's device

        Cache-Control's private directive

        Other Cache-Control directives

        Content that cannot be cached

        Cookies do not block caching

    More tips for better caching

    Caching FAQ


CHAPTER 6. Customizing content for users and devices

    Overview

    Using AvantGo Client HTTP request headers to customize content

        Retrieving AvantGo Client HTTP request headers

        Decoding AvantGo Client HTTP request headers

        Why not label these pages as Cache-Control: private?

    Using server URL macros to customize content

        Inserting URL macros into your channel URL

        Available URL macros

    Using cookies to support personal channels

        Setting cookies in your HTTP headers

        Cookie personalization example: a Movie Review Channel

        Expiring cookies differently for desktop vs. channel viewers

        Putting it all together


CHAPTER 7. Managing channel form submissions

    Overview

    Forms in the online world

    Forms in the offline world

        What the Forms Manager does

        Why you shouldn't use the Forms Manager

    Submitting forms the right way

        Using submitNoResponse() with the Submit button

        Caching guidelines

        Accommodating online users

    Using personal channels to bypass the Forms Manager

        A hypothetical Wine Finder Channel

        Source code for the Wine Finder Channel

    Avoiding collisions in multiple offline submissions

        The problem — how offline submissions can "collide"

        Solutions



Deploying a channel


CHAPTER 8. Rolling out a channel

    Overview

    Becoming an AvantGo media channel customer

        AvantGo media channel customer benefits

        User-submitted channels have been phased out

    Linking to and promoting your channel

        Providing a link that subscribes users

        Looking up your channel ID

    Things to do before you go live

        Set your channel up for caching

        Explain the AvantGo button

        Restrict access to AvantGo servers only


CHAPTER 9. Subscribing channel users

    Overview

    Subscribing users with a simple link

        Getting a channel ID

        Looking up a channel ID

    Subscribing users with a sign-up process

        Setting a cookie using a link

        Setting a cookie using a form

        Hiding channel ID so sign-up process cannot be bypassed

    Adding any web page to user's mobile device with a simple link

    Adding any web page to user's mobile device with add_channel.pl link

    A few words about .subs files



Appendices


APPENDIX A. HTML 4 support in AvantGo Client 5.x

    Overview

    HTML 4.01 tags and attributes

    CSS level 1 style attribute properties

    DOM level 1

    JavaScript


APPENDIX B. HTML 3.2 support in AvantGo Client 4.x

    Overview

    HTML tag and attribute support

    Basic JavaScript

        Methods

        Event handlers

        The Document Object Model (DOM)

        PODS URLs

        Submitting forms

        Data types

        Practical examples using Basic JavaScript

        Summary


APPENDIX C. Adding special features to a channel

    Overview

    Email and zip code auto-fill

    Using PIM POD to insert an event into a user's calendar


APPENDIX D. Designing advertising for AvantGo home page and channels

    Overview

    Banners

        File format

        Dimensions

        Using color on Palm OS devices

    Jump pages

        Number of pages

        File format

        Formatting

        Table-specific formatting

        Images

        Forms

        Frames

        Links

        JavaScript

        AvantGo post-Submit message

    AvantGo extras

        Automated email response

        Data collection

        Add-to-calendar/add-to-address book

        Add channel

        Preview channel

        Splash pages

    Timeframes and policies

        Submission deadline and production timeline

        ...When there are errors in the ad:


APPENDIX E. Security

    Overview

    Client-to-server security

        Secure sessions

        Special requirements

    Server security

        Server protection

        Transmission checks

        Cookie encryption

    Server-to-web security

        Secure connections

        Trusted hosts

        Authentication to websites

    Futures and options


APPENDIX F. Code samples

    Overview

    Movie Review Channel example

        Basic version

        Version 2, supporting online users

        Version 3, no database, preferences stored in cookie

    Wine Finder Channel example

    Sample hosted advertisement

    Email and zip code auto-fill example