听一个同事说的,他们项目正在开发,于是就找了篇文章:
http://hi.baidu.com/comdeng/blog/item/15b06af06ede6aaba50f52e0.html
基于UWA(Universal Widget API)的Sohu Open Widget开发经验总结
这几天忙活一个Sohu Open Widget。搜狐博客开放模块(Sohu Open Widget,简称SOW)是一个由搜狐公司推出、基于UWA(Universal Widget API)规范、应用于多个平台的Widget标准。经过最初的不解,到中间的迷惑,到最后的释然,感觉SOW的确是一个不错的东东。
下面来讲述一下我的开发模式:
一、一个widget由3个页面构成:
1.widget.xhtml 这个页面负责模块的使用导航。因为模板是要做成通用的,因此需要在页面最初显示的时候给予一些信息提示,这对于用户初次使用将起到很好的导航作用。这是其一。最重要的当然还是其控制作用了。控制作用即它要完成页面的配置,并将配置信息发送给相应接口,在接收到返回的信息之后,将对模块的页面实行更新。
2.interface.php 这个页面负责对配置信息进行预处理,并将处理好的信息发送给相应的业务逻辑。并将业务逻辑返回的数据回送到widget.xhtml页面。
3.implement.php 这个页面负责具体业务逻辑的实现,并返回数据给interface.php。
这也可以算是一个简单的三层系统了。
最后,对于要实现和某网站的某一用户绑定的widget,需要注意如下事项:
一、必须仔细阅读相关的开发文档,看清哪些描述信息是必须的,哪些参数是必须要添加的。比如:
1、js和css都不能是外联的,<head>里边title信息是必须的等等,否则很有可能引起xhtml加载失败。如果出现加载失败的情况,一时半会又找不到症结所在,可以通过http://validator.w3.org提供的验证功能对错误位置进行查找。一般最有可能的错误就是标签没有闭合符号/。比如<hr size="1">就会引起错误,正确的应该是<hr size="1"/>。
2、代码的位置错误。比如将<widget:preferences>放到body中间,正确的应该是在head标签中。
二、提供给sohu的widget,应该是一个xhtml页面,这个页面不管业务逻辑,只负责widget的导航和模块参数的配置以及模块参数的发送。应该另外提供一个隐蔽的接口来实现对模块参数的处理和数据的返回。
三、在widget没有通过sohu审核之前,模块参数设置都将通过cookie的形式保存;当通过审核后,参数设置则会无条件的发送给sohu保存到其数据库中。也就是说,这些模块参数都将会保存到sohu的数据库中,因此,必须考虑到用户信息的安全。因为通过某些技术手段,这些配置信息能被截取到。
四、sohu的API接口不提供对模块参数的验证,因此验证逻辑都需要通过js来完成,这对于widget的正常运转起着很重要的作用。因此,不要忽视对数据的验证。
五、尽量不要设置css样式,直接使用sohu提供的css样式将能给模块最大的兼容性。
Widget开发最佳实践:
http://blog.sina.com.cn/s/blog_4696030f0100dey0.html
- 大小: 10.9 KB
分享到:
相关推荐
在Android开发中,`appWidget` 是一种可以在用户主屏幕上显示的小部件,它提供了一种无需打开应用程序就能与用户交互的方式。本篇文章将深入探讨如何使用`appWidget`来启动一个`Activity`。 首先,我们需要了解`app...
在Android开发中,AppWidget是桌面小部件,它允许用户在主屏幕上与应用程序进行交互,而无需实际打开应用。Service是Android系统中的一个组件,它可以在后台长时间运行,执行一些耗时的操作,如音乐播放、数据同步等...
在Qt编程中,Widget是构建用户界面的基本元素,如按钮、文本框等。"Qt界面获取Widget位置大小并与其他Widget切换位置大小"这个主题涉及到如何动态地改变和管理Widget的位置和尺寸,以及如何通过交互来实现它们之间的...
在Android开发中,Widget是应用在主屏幕上的小型UI组件,它们可以提供用户与应用程序的交互,无需打开应用本身。ListView是一种常用的布局管理器,它允许用户在一个滚动列表中显示大量数据。本教程将深入探讨如何在...
**Widget技术概述** Widget在IT领域中通常指的是小型应用程序或组件,它们可以在各种操作系统或平台上运行,提供便捷的功能访问或信息展示。Widget开发是构建用户界面(UI)和增强用户体验的重要部分,尤其在移动...
在Qt框架中,动态添加子Widget是一项常见的任务,特别是在创建可扩展或自适应用户界面时。Qt5及以上版本提供了丰富的API来实现这一功能。本文将深入探讨如何在Qt5及更高版本中动态地向父Widget添加子Widget,以及...
本主题聚焦于"Android桌面插件-时钟widget",这是一个非常实用且常见的组件,它能为用户提供即时的时间显示,甚至支持多时区时间查看。 时钟Widget是Android系统中的一个核心组件,开发者可以通过自定义实现来提供...
【Android 安卓 App Widget 界面控件使用教程】 Android 安卓系统提供了一种称为 App Widget 的功能,这是一类特殊的用户界面组件,可以让应用程序的部分功能直接出现在用户的主屏幕上,无需打开应用就能进行交互。...
对于Android开发者来说,使用Axure制作Widget原型可以帮助他们在设计阶段更好地理解和规划应用界面。这个“android axure widget包”就是一组专门针对Android平台的Axure组件库,由用户自己制作并分享。 标题中的...
【标题】:移动Widget现状分析报告 【摘要】: 移动Widget是互联网技术发展下的产物,是一种小型的应用程序,可在各种平台上展示个性化信息。本报告旨在分析当前移动Widget的市场状况,探讨其起源和发展历程,以及...
在Android开发中,WidgetConfig是用于管理Android小部件(Widget)配置的一种机制,它可以帮助开发者避免在添加Widget到用户桌面时出现Application实例的重复创建。本文将深入探讨如何使用WidgetConfig来解决这个...
在Android平台上,AppWidget是小部件的简称,它允许开发者创建可以放置在用户主屏幕上的小型应用程序。在本例中,我们关注的是一个特定类型的AppWidget,它显示时间并每秒更新一次。创建这样一个实时更新的时钟App...
在Android开发中,AppWidget是桌面小部件,它允许用户在主屏幕上与应用程序进行交互,而无需实际打开应用。在本篇博文中,我们将深入探讨如何在AppWidget中启动一个新的Activity,这通常是为了提供更丰富的用户体验...
"QT界面旋转切换Widget"是QT框架下实现的一种创新交互方式,它允许用户通过旋转效果在不同的界面或Widget之间进行平滑切换,提升了用户体验。 在QT中,Widget是构成用户界面的基本元素,它可以是按钮、文本框、标签...
【Widget的介绍与详解】 Widget,这个词源自英语,是一个通用术语,用来描述各种小型应用程序或组件,它们可以在不同平台上以小窗口或小框的形式呈现,为用户提供便捷的功能或信息展示。Widget广泛应用于网页、系统...
在深入探讨Android AppWidget之前,我们首先需要理解AppWidget在Android生态中的角色和价值。AppWidget,即桌面小部件,是Android系统提供的一种允许应用程序在主屏幕放置动态更新的组件,用户无需打开完整应用即可...
在Android平台上,Widget是应用程序的一种轻量级交互方式,它可以在主屏幕上显示实时信息并提供简单操作,无需打开完整的应用程序。本教程将深入探讨如何在Android中实现一个Widget闹钟功能,这对于Android开发者来...
在Android平台上,Widget小组件是应用在主屏幕上提供快速访问或简单交互的一种方式。它们可以显示实时信息,比如天气、时钟或者新闻摘要,而无需用户打开完整的应用程序。本资料包"androidWidget小组件开发.zip"包含...
6. **向Launcher注册Widget**:在用户选择添加Widget时,Launcher会调用AppWidgetManager的`addAppWidget()`方法,传入Widget提供者的ComponentName和待分配的AppWidgetId。 接下来,我们重点关注"JYCLauncher"这个...