Changes between Version 20 and Version 21 of BluePrint/Mobile/Portal


Ignore:
Timestamp:
06/17/12 18:19:29 (12 years ago)
Author:
Fran Boon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/Mobile/Portal

    v20 v21  
    11= Mobile Portal =
     2[[TOC]]
    23
    34Provide a simple portal for access from devices with low bandwidth/screen sizes/ CPU.
     
    2425* Work on low-bandwidth/high latency
    2526
    26 jQuery Mobile
    27  * http://jquerymobile.com/
    28 
    2927Detection:
    30 * Client-side with javascript
    31  * http://www.modernizr.com/
    3228* Server-side most reliable:
     29 * http://web2py.com/books/default/chapter/29/5#Mobile-development
     30  * https://github.com/mdipierro/web2py/blob/master/gluon/contrib/user_agent_parser.py
    3331 * [http://wurfl.sourceforge.net WURFL] - an XML library of mobile phone capabilities
    3432  * http://pypi.python.org/pypi/pywurfl/
     
    3634 * http://www.handsetdetection.com/
    3735* If not,possible then call fallback to client-side:
     36 * http://www.modernizr.com
    3837 * http://www.hand-interactive.com/resources/detect-mobile-javascript.htm
    3938  * http://code.google.com/p/mobileesp/source/browse/JavaScript/mdetect.js
     39
     40{{{MENU(mobile=True)}}}:
     41 * http://bazaar.launchpad.net/~mdipierro/web2py/devel/revision/3953
     42
     43jQuery Mobile
     44 * http://jquerymobile.com/
     45 * http://web2py.com/plugins/plugin_jqmobile/about/1
     46  * https://groups.google.com/forum/#!topic/web2py/SZxLeK9SaS4
    4047
    4148Bandwidth savers:
     
    5461 * Nokia screen sizes: http://forum.mobiles24.com/showthread.php?t=9980
    5562  * Remember that some screen lost for nav tools & that usually used in portrait mode
    56 == Web2Py support ==
    57 * http://web2py.com/books/default/chapter/29/5#Mobile-development
    58 * https://github.com/mdipierro/web2py/blob/master/gluon/contrib/user_agent_parser.py
    5963
    60 Old:
    61 
    62 Detection:
    63  * http://groups.google.com/group/web2py/browse_thread/thread/6ca3015735bffaa8#
    64 
    65 New Web2Py method (developed since we developed ours):
    66  * http://bazaar.launchpad.net/~mdipierro/web2py/devel/view/head:/gluon/contrib/user_agent_parser.py
    67 
    68 {{{MENU(mobile=True)}}}:
    69  * http://bazaar.launchpad.net/~mdipierro/web2py/devel/revision/3953
    70 
    71 Plugin to use jQuery Mobile:
    72  * http://web2py.com/plugins/plugin_jqmobile/about/1
    73  * https://groups.google.com/forum/#!topic/web2py/SZxLeK9SaS4
    7464== Status ==
    7565
    7666{{{session.s3.mobile}}} boolean is populated by a quick check on the Browser in {{{models/00_settings.py}}}.
     67* Currently disabled as unused & slows system down
    7768
    7869{{{session.s3.browser}}} Storage of capabilities is populated by a detailed check on the Browser in {{{models/00_settings.py}}}.
     
    8071These can be used to direct to appropriate pages - e.g. assess/create goes to assess_short_mobile
    8172
    82 the values to be populated in {{{session.s3.browser}}} has to be set in {{{features}}} (an instance of storage) in {{{models/00_settings.py}}} under definition of {{{populate_browser_compatibility()}}} function.
    83 
    84 the complete listing of available features detected by pywurfl is as follows.
    85 {{{
    86 features = Storage(
    87 
    88     ajax = [ ajax_manipulate_css, ajax_manipulate_dom, ajax_preferred_geoloc_api, ajax_support_event_listener, ajax_support_events,
    89            ajax_support_getelementbyid, ajax_support_inner_html, ajax_support_javascript, ajax_xhr_type] ,
    90 
    91     bearer = [ has_cellular_radio, max_data_rate, sdio, vpn, wifi] ,
    92 
    93     bugs = [ basic_authentication_support, empty_option_value_support, emptyok, post_method_support] ,
    94 
    95     cache = [ time_to_live_support, total_cache_disable_support] ,
    96 
    97     chtml_ui = [ chtml_can_display_images_and_text_on_same_line, chtml_display_accesskey, chtml_displays_image_in_center, chtml_make_phone_call_string,
    98                chtml_table_support, emoji, imode_region] ,
    99 
    100     css = [ css_border_image, css_gradient, css_rounded_corners, css_spriting, css_supports_width_as_percentage] ,
    101 
    102     display = [ columns, dual_orientation, max_image_height, max_image_width, physical_screen_height, physical_screen_width, resolution_height,
    103               resolution_width, rows] ,
    104 
    105     drm = [ oma_v_1_0_combined_delivery, oma_v_1_0_forwardlock, oma_v_1_0_separate_delivery] ,
    106 
    107     flash_lite = [ fl_browser, fl_screensaver, fl_standalone, fl_sub_lcd, fl_wallpaper, flash_lite_version, full_flash_support] ,
    108 
    109     html_ui = [ canvas_support, handheldfriendly, html_preferred_dtd, image_inlining, mobileoptimized, viewport_initial_scale, viewport_maximum_scale,
    110               viewport_minimum_scale, viewport_supported, viewport_userscalable, viewport_width] ,
    111 
    112     image_format = [ bmp, colors, epoc_bmp, gif, gif_animated, greyscale, jpg, png, svgt_1_1, svgt_1_1_plus, tiff, transparent_png_alpha,
    113                    transparent_png_index, wbmp] ,
    114 
    115     j2me = [ doja_1_0, doja_1_5, doja_2_0, doja_2_1, doja_2_2, doja_3_0, doja_3_5, doja_4_0, j2me_3dapi, j2me_3gpp, j2me_aac, j2me_amr, j2me_au,
    116            j2me_audio_capture_enabled, j2me_bits_per_pixel, j2me_bmp, j2me_bmp3, j2me_btapi, j2me_canvas_height, j2me_canvas_width,
    117            j2me_capture_image_formats, j2me_cldc_1_0, j2me_cldc_1_1, j2me_clear_key_code, j2me_datefield_broken, j2me_datefield_no_accepts_null_date,
    118            j2me_gif, j2me_gif89a, j2me_h263, j2me_heap_size, j2me_http, j2me_https, j2me_imelody, j2me_jpg, j2me_jtwi, j2me_left_softkey_code,
    119            j2me_locapi, j2me_max_jar_size, j2me_max_record_store_size, j2me_middle_softkey_code, j2me_midi, j2me_midp_1_0, j2me_midp_2_0,
    120            j2me_mmapi_1_0, j2me_mmapi_1_1, j2me_motorola_lwt, j2me_mp3, j2me_mp4, j2me_mpeg4, j2me_nokia_ui, j2me_photo_capture_enabled, j2me_png,
    121            j2me_real8, j2me_realaudio, j2me_realmedia, j2me_realvideo, j2me_return_key_code, j2me_right_softkey_code, j2me_rmf, j2me_screen_height,
    122            j2me_screen_width, j2me_select_key_code, j2me_serial, j2me_siemens_color_game, j2me_siemens_extension, j2me_socket, j2me_storage_size,
    123            j2me_svgt, j2me_udp, j2me_video_capture_enabled, j2me_wav, j2me_wbmp, j2me_wma, j2me_wmapi_1_0, j2me_wmapi_1_1, j2me_wmapi_2_0, j2me_xmf] ,
    124 
    125     markup = [ html_web_3_2, html_web_4_0, html_wi_imode_compact_generic, html_wi_imode_html_1, html_wi_imode_html_2, html_wi_imode_html_3,
    126              html_wi_imode_html_4, html_wi_imode_html_5, html_wi_imode_htmlx_1, html_wi_imode_htmlx_1_1, html_wi_oma_xhtmlmp_1_0, html_wi_w3_xhtmlbasic,
    127              multipart_support, preferred_markup, voicexml, wml_1_1, wml_1_2, wml_1_3, xhtml_support_level] ,
    128 
    129     mms = [ built_in_camera, built_in_recorder, mms_3gpp, mms_3gpp2, mms_amr, mms_bmp, mms_evrc, mms_gif_animated, mms_gif_static, mms_jad, mms_jar,
    130           mms_jpeg_baseline, mms_jpeg_progressive, mms_max_frame_rate, mms_max_height, mms_max_size, mms_max_width, mms_midi_monophonic,
    131           mms_midi_polyphonic, mms_midi_polyphonic_voices, mms_mmf, mms_mp3, mms_mp4, mms_nokia_3dscreensaver, mms_nokia_operatorlogo,
    132           mms_nokia_ringingtone, mms_nokia_wallpaper, mms_ota_bitmap, mms_png, mms_qcelp, mms_rmf, mms_spmidi, mms_symbian_install, mms_vcalendar,
    133           mms_vcard, mms_video, mms_wav, mms_wbmp, mms_wbxml, mms_wml, mms_wmlc, mms_xmf, receiver, sender] ,
    134 
    135     object_download = [ directdownload_support, downloadfun_support, inline_support, oma_support, picture, picture_bmp, picture_colors,
    136                       picture_df_size_limit, picture_directdownload_size_limit, picture_gif, picture_greyscale, picture_inline_size_limit, picture_jpg,
    137                       picture_max_height, picture_max_width, picture_oma_size_limit, picture_png, picture_preferred_height, picture_preferred_width,
    138                       picture_resize, picture_wbmp, ringtone, ringtone_3gpp, ringtone_aac, ringtone_amr, ringtone_awb, ringtone_compactmidi,
    139                       ringtone_df_size_limit, ringtone_digiplug, ringtone_directdownload_size_limit, ringtone_imelody, ringtone_inline_size_limit,
    140                       ringtone_midi_monophonic, ringtone_midi_polyphonic, ringtone_mmf, ringtone_mp3, ringtone_oma_size_limit, ringtone_qcelp,
    141                       ringtone_rmf, ringtone_spmidi, ringtone_voices, ringtone_wav, ringtone_xmf, screensaver, screensaver_bmp, screensaver_colors,
    142                       screensaver_df_size_limit, screensaver_directdownload_size_limit, screensaver_gif, screensaver_greyscale,
    143                       screensaver_inline_size_limit, screensaver_jpg, screensaver_max_height, screensaver_max_width, screensaver_oma_size_limit,
    144                       screensaver_png, screensaver_preferred_height, screensaver_preferred_width, screensaver_resize, screensaver_wbmp, video,
    145                       wallpaper, wallpaper_bmp, wallpaper_colors, wallpaper_df_size_limit, wallpaper_directdownload_size_limit, wallpaper_gif,
    146                       wallpaper_greyscale, wallpaper_inline_size_limit, wallpaper_jpg, wallpaper_max_height, wallpaper_max_width,
    147                       wallpaper_oma_size_limit, wallpaper_png, wallpaper_preferred_height, wallpaper_preferred_width, wallpaper_resize, wallpaper_tiff,
    148                       wallpaper_wbmp] ,
    149 
    150     pdf = [ pdf_support] ,
    151 
    152     playback = [ hinted_progressive_download, playback_3g2, playback_3gpp, playback_acodec_aac, playback_acodec_amr, playback_acodec_qcelp,
    153                playback_df_size_limit, playback_directdownload_size_limit, playback_inline_size_limit, playback_mov, playback_mp4,
    154                playback_oma_size_limit, playback_real_media, playback_vcodec_h263_0, playback_vcodec_h263_3, playback_vcodec_h264_bp,
    155                playback_vcodec_mpeg4_asp, playback_vcodec_mpeg4_sp, playback_wmv, progressive_download] ,
    156 
    157     product_info = [ brand_name, can_assign_phone_number, can_skip_aligned_link_row, device_claims_web_support, device_os, device_os_version,
    158                    has_qwerty_keyboard, is_tablet, is_wireless_device, marketing_name, mobile_browser, mobile_browser_version, model_extra_info,
    159                    model_name, nokia_edition, nokia_feature_pack, nokia_series, pointing_method, release_date, uaprof, uaprof2, uaprof3, unique,
    160                    ununiqueness_handler] ,
    161 
    162     rss = [ rss_support] ,
    163 
    164     security = [ https_support, phone_id_provided] ,
    165 
    166     sms = [ callericon, ems, ems_imelody, ems_odi, ems_upi, ems_variablesizedpictures, ems_version, gprtf, largeoperatorlogo, nokiaring, nokiavcal,
    167           nokiavcard, operatorlogo, panasonic, picturemessage, sagem_v1, sagem_v2, sckl_groupgraphic, sckl_operatorlogo, sckl_ringtone, sckl_vcalendar,
    168           sckl_vcard, siemens_logo_height, siemens_logo_width, siemens_ota, siemens_screensaver_height, siemens_screensaver_width, sms_enabled, 
    169           text_imelody] ,
    170 
    171     sound_format = [ aac, amr, au, awb, compactmidi, digiplug, evrc, imelody, midi_monophonic, midi_polyphonic, mld, mmf, mp3, nokia_ringtone, qcelp,
    172                    rmf, smf, sp_midi, voices, wav, xmf] ,
    173 
    174     storage = [ max_deck_size, max_length_of_password, max_length_of_username, max_no_of_bookmarks, max_no_of_connection_settings, max_object_size,
    175               max_url_length_bookmark, max_url_length_cached_page, max_url_length_homepage, max_url_length_in_requests] ,
    176 
    177     streaming = [ streaming_3g2, streaming_3gpp, streaming_acodec_aac, streaming_acodec_amr, streaming_flv, streaming_mov, streaming_mp4,
    178                 streaming_preferred_protocol, streaming_real_media, streaming_vcodec_h263_0, streaming_vcodec_h263_3, streaming_vcodec_h264_bp,
    179                 streaming_vcodec_mpeg4_asp, streaming_vcodec_mpeg4_sp, streaming_video, streaming_video_size_limit, streaming_wmv] ,
    180 
    181     transcoding = [ is_transcoder, transcoder_ua_header] ,
    182 
    183     wap_push = [ ascii_support, connectionless_cache_operation, connectionless_service_indication, connectionless_service_load,
    184                connectionoriented_confirmed_cache_operation, connectionoriented_confirmed_service_indication, connectionoriented_confirmed_service_load,
    185                connectionoriented_unconfirmed_cache_operation, connectionoriented_unconfirmed_service_indication,
    186                connectionoriented_unconfirmed_service_load, expiration_date, iso8859_support, utf8_support, wap_push_support] ,
    187 
    188     wml_ui = [ access_key_support, break_list_of_links_with_br_element_recommended, built_in_back_button_support, card_title_support,
    189              deck_prefetch_support, elective_forms_recommended, icons_on_menu_items_support, image_as_link_support,
    190              insert_br_element_after_widget_recommended, menu_with_list_of_links_recommended, menu_with_select_element_recommended, numbered_menus,
    191              opwv_wml_extensions_support, proportional_font, softkey_support, table_support, times_square_mode_support, wizards_recommended,
    192              wml_can_display_images_and_text_on_same_line, wml_displays_image_in_center, wml_make_phone_call_string, wrap_mode_support] ,
    193 
    194     wta = [ nokia_voice_call, wta_misc, wta_pdc, wta_phonebook, wta_voice_call] ,
    195 
    196     xhtml_ui = [ accept_third_party_cookie, cookie_support, opwv_xhtml_extensions_support, xhtml_allows_disabled_form_elements,
    197                xhtml_autoexpand_select, xhtml_avoid_accesskeys, xhtml_can_embed_video, xhtml_display_accesskey, xhtml_document_title_support,
    198                xhtml_file_upload, xhtml_format_as_attribute, xhtml_format_as_css_property, xhtml_honors_bgcolor, xhtml_make_phone_call_string,           
    199                xhtml_marquee_as_css_property, xhtml_nowrap_mode, xhtml_preferred_charset, xhtml_readable_background_color1,
    200                xhtml_readable_background_color2, xhtml_select_as_dropdown, xhtml_select_as_popup, xhtml_select_as_radiobutton, xhtml_send_mms_string,
    201                xhtml_send_sms_string, xhtml_support_wml2_namespace, xhtml_supports_css_cell_table_coloring, xhtml_supports_forms_in_table,
    202                xhtml_supports_iframe, xhtml_supports_inline_input, xhtml_supports_invisible_text, xhtml_supports_monospace_font,
    203                xhtml_supports_table_for_layout, xhtml_table_support, xhtmlmp_preferred_mime_type]
    204 
    205 )
    206 }}}
     73The values to be populated in {{{session.s3.browser}}} has to be set in {{{features}}} (an instance of storage) in {{{models/00_settings.py}}} under definition of {{{populate_browser_compatibility()}}} function.