中国移动MobileMarket客户端插件规范

上传人:仙*** 文档编号:28135484 上传时间:2021-08-23 格式:DOC 页数:20 大小:1.12MB
收藏 版权申诉 举报 下载
中国移动MobileMarket客户端插件规范_第1页
第1页 / 共20页
中国移动MobileMarket客户端插件规范_第2页
第2页 / 共20页
中国移动MobileMarket客户端插件规范_第3页
第3页 / 共20页
资源描述:

《中国移动MobileMarket客户端插件规范》由会员分享,可在线阅读,更多相关《中国移动MobileMarket客户端插件规范(20页珍藏版)》请在装配图网上搜索。

1、 QB-中国移动通信企业标准QB-Mobile Market客户端插件规范(S60)S60 Plugin Specification For Mobile Market Platform版本号:1.0.0-实施-发布中国移动通信集团公司 发布II QB-目 录前 言II1范围12规范性引用文件13术语、定义和缩略语13.1术语、定义13.2缩略语24M-Market S60客户端插件架构44.1插件架构44.2架构描述44.2.1插件服务器作用44.2.2客户端插件管理器的作用54.3动态加载插件流程55第3方插件开发规范:105.1第3方开发步骤:105.2功能插件开发规范105.2.1功能

2、插件接口规范:115.2.2实际开发流程举例:125.3业务插件开发规范135.3.1业务插件接口规范:145.3.2业务插件开发流程举例:145.4M-Market客户端托座提供的能力155.5M-Market客户端托座提供的广告控件接口166附录16I前 言本标准对M-Market S60客户端的插件开发提出要求,是M-Market S60插件开发需要遵从的技术文件。本标准是业务系列标准之一,该系列标准的结构、名称或预计的名称如下:序号标准编号标准名称1M-Market平台总体技术要求2M-Market平台业务规范3M-Market平台设备规范本标准需与M-Market平台业务规范配套使用

3、。本标准的附录为标准性附录,附录为资料性附录。本标准由中移号文件印发。本标准由中国移动通信集团数据部提出,集团公司技术部归口。本标准起草单位:中国移动通信有限公司研究院。本标准主要起草人:II1 范围本标准对M-Market S60客户端的插件开发作出规定,供中国移动通信集团内部和厂商共同使用,为集团公司和省公司提供业务开展的依据。本标准适用于GSM/ GPRS/EDGE/TD-SCDMA网络环境。2 规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否

4、可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。1M-Market平台总体技术要求中国移动通信有限公司2M-Market平台接口规范中国移动通信有限公司3M-Market平台业务规范中国移动通信有限公司43 术语、定义和缩略语3.1 术语、定义术语/定义解释M-Market中国移动应用商场业务。M-Market聚合手机终端应用,通过中国移动的业务网络,向手机用户统一销售。应用可运行在手机终端应用执行环境的各种应用程序,包括本地操作系统应用、Kjava应用、M-Market应用等。离线应用在终端可独立运行,无需网络连接的应用。在线应用由客户端和服务器端功能组件共同构成的

5、应用。在运行时,通过网络连接,提供完整的功能服务。应用产品用户获得并运行特定应用所获得的服务,在定义了资费规则(包月、按次等)之后,作为销售单元,可向用户销售,称为应用产品。开发者开发应用软件的个人应用提供商提供应用软件的公司测试认证中心对应用进行合格性测试的机构,由中国移动指定应用认证来自于开发者或应用提供商的应用需经过中国移动测试认证中心进行合格性测试,获得在M-Market上销售的资格认证订购用户获得应用产品前进行付费确认并产生产品订单的过程下载离线应用或在线应用客户端软件包从应用服务器传输到用户终端的过程AP代码应用提供商、签约个人开发者的唯一标识,用于收入结算应用代码应用的唯一标识,

6、用于应用消费跟踪、能力访问鉴权;产品代码应用产品的唯一标识,用于订单生成和识别、产品消费跟踪分析等业务代码用于计费的代码;对于包月计费产品,业务代码与产品代码一一对应;对与按次计费产品,业务代码与产品代码是1对多的关系;3.2 缩略语缩略语英文全称中文含义M-MARKETM-Market中国移动应用商场OTAOver The Air 空中、无线方式 WAPWireless Application Protocol 无线应用协议 APApplication Provider 应用提供商 SPService Provider 服务提供商 GPRSGeneral Packet Radio Servi

7、ce, 通用无线分组业务 TD-SCDMATime Division-Synchronous CDMA 时分同步码分多址接入 EDGEEnhanced Data rates for GSM Evolution GSM增强数据速率改进技术 WWWWorld Wide Web 万维网 HTTPHyperText Transfer Protocol 超文本传输协议 FTPFile Transfer Protocol 文件传送协议 APIApplication PrograM-Marketing Interface 应用程序接口 SMSShort Message Service 短消息服务 BOSSB

8、usiness Operation Support System 业务运营支撑系统 URLUniform Resource Locator 统一资源定位 M-MARKETSCMultimedia Messaging Service Center 彩信中心 SNMPSimple Network Management Protocol 简单网络管理协议 DRMDigital Rights Management 数字版权管理 JILJoint Innovation Lab联合创新实验室SIMSService Information Management System业务信息管理系统4 M-Marke

9、t S60客户端插件架构4.1 插件架构图4-1 M-Market S60客户端架构图4.2 架构描述插件管理是M-Market S60客户端托座部分的核心模块, 提供了动态加载功能插件与业务插件的功能, 基于此设计, M-Market客户端可以无缝的融合各类手机服务, 随时按需加载的业务逻辑与业务数据, 为用户提供更好的手机服务.从功能上看, 插件管理就是提供了把新业务, 新服务, 新应用等动态部署到M-Market客户端的能力. 主要包含以下几块主要内容:1. 服务端对插件(业务与功能)进行生命周期管理2. 客户端在启动时获取必要的插件列表3. 运行中根据业务需求动态加载业务/功能插件4.

10、2.1 插件服务器作用插件服务器端的作用是对各类插件进行生命周期管理, 提供客户端定位下载插件的功能, 在插件服务器上保存有所有的业务与功能插件的可执行代码, 配置信息, 下载地址等数据, 供客户端请求使用. 主要包括以下功能:1. 提供配置页面进行插件生命周期的管理a) 新插件接入管理b) 插件升级管理c) 插件功能结束, 退出M-Market平台的管理2. 提供不同客户端平台(symbian, mobile, oms等)不同的插件3. 提供客户端获取插件列表能力提供客户端下载插件能力4.2.2 客户端插件管理器的作用客户端插件管理器主要包含以下内容:插件生命周期管理:a) 发现插件, 通过

11、频道数据或页面布局或内部逻辑发现新插件b) 定位插件, 根据a的信息在插件列表中找到该插件的位置信息, 名称, url等c) 下载插件, 在插件未安装时根据b里的url下载该插件d) 安装, 默默安装插件e) 加载, 把插件加载到M-Market客户端里以便运行f) 升级, 在检测到插件有新版本时提示用户升级插件卸载, 在插件生命周期结束, 服务端通知此插件不在需要时, 从客户手机上默默卸载4.3 动态加载插件流程1. 新的功能插件的引入场景(假设为12530音乐播放器):服务端引入12530音乐播放功能a) 12530播放器按照M-Market客户端功能插件规范改造/开发b) 12530播放

12、插件及配置信息在服务器发布客户端动态加载12530播放插件a) M-Market客户端启动时获取频道列表与插件列表b) 用户从音乐频道浏览到音乐列表页面c) 用户点击音乐标签d) M-Market客户端分析页面标签, 提取功能插件id与参数e) M-Market客户端检测此功能插件是否已加载, 是则跳转mf) 未加载则调插件管理模块加载此功能插件g) 插件管理模块检测此功能插件是否已安装, 已安装则跳转步骤lh) 未安装, 插件管理模块提示用户是否下载安装此插件i) 用户选否, 则直接返回j) 用户选择是, 则下载插件-从前面获取的插件列表中获取12530播放功能插件的下载url k) 插件管

13、理模块安装12530播放插件l) 插件管理模块加载并初始化12530播放插件m) 插件管理模块激活12530播放插件(调用入口函数并传递参数), 12530播放插件开始工作2. 功能插件的升级场景(假设为12530音乐播放器):服务端更新12530音乐播放功能a) 已开发的12530播放器升级开发完成, 在服务端发布新版本客户端动态升级12530播放插件a) M-Market客户端启动时获取频道列表与插件列表b) 用户从音乐频道浏览到音乐列表页面c) 用户点击音乐标签d) M-Market客户端分析页面标签, 提取功能插件id与参数e) M-Market客户端检测此功能插件是否已加载, 是则跳

14、转nf) 未加载则调插件管理模块加载此功能插件g) 插件管理模块检测此功能插件是否已安装, 未安装走前一个流程h) 已安装, 插件管理模块检测插件是否需要升级, 不需升级则跳转mi) 需要升级则按照服务器配置策略, 是否提示用户升级此插件, 不提示则跳转k, 否则提示用户是否升级插件j) 用户选否, 则跳转mk) 用户选择是, 则下载插件-从前面获取的插件列表中获取12530播放功能插件的下载url l) 插件管理模块升级(安装)12530播放插件m) 插件管理模块加载并初始化12530播放插件n) 插件管理模块激活12530播放插件(调用入口函数并传递参数), 12530播放插件开始工作3.

15、 一个新的业务插件的引入场景(假设为中央音乐平台音乐业务):服务端引入新业务12530音乐业务a) 12530音乐业务数据引入M-Market平台b) 12530按照M-Market客户端业务插件规范改造开发c) 12530插件及配置信息在服务器发布客户端动态加载12530新业务a) M-Market客户端启动时获取频道列表与插件列表b) 用户点击12530频道c) M-Market客户端从频道列表查到这是一个业务插件, 检测是否此业务插件已加载, 已加载则跳转jd) 未加载则调插件管理模块加载此插件e) 插件管理模块检测此业务插件是否已安装, 已安装则跳转步骤if) 未安装, 则提示用户此插

16、件需要下载安装才能使用, 用户不安装则直接返回g) 用户选择下载安装, 插件管理模块下载此业务插件-从前面获取的插件列表获取12530业务插件下载urlh) 插件管理模块安装12530业务插件i) 插件管理模块加载并初始化12530业务插件j) 插件管理模块激活12530业务插件(调用入口函数并传递参数), 开始提供业务服务 4. 业务插件的升级场景(假设为中央音乐平台音乐业务):服务端更新新业务12530音乐业务a) 12530插件升级开发完成, 在服务端发布新版本客户端动态加载12530新业务a) M-Market客户端启动时获取频道列表与插件列表b) 用户点击12530频道c) M-Ma

17、rket客户端从频道列表查到这是一个业务插件, 检测是否此业务插件已加载, 已加载则跳转kd) 未加载则调插件管理模块加载此插件e) 插件管理模块检测此业务插件是否已安装, 未安装则走前面的接入流程, f) 已安装则检测是否需要升级, 无需升级则跳转jg) 需要升级, 则检测服务器配置是否提示用户, 不提示则跳转j, 否则提示用户是否升级插件, 用户不升级则跳转jh) 用户选择升级, 插件管理模块下载此业务插件-从前面获取的插件列表获取12530业务插件下载urli) 插件管理模块安装12530业务插件j) 插件管理模块加载并初始化12530业务插件k) 插件管理模块激活12530业务插件(调

18、用入口函数并传递参数), 开始提供业务服务 5 第3方插件开发规范:本文档只提供symbian平台的插件开发规范, 其它平台由相关平台开发公司提供5.1 第3方开发步骤:1. 卓望公司提供M-Market客户端第3方开发sdk, 包含:a) 接口头文件b) 开发libc) 接口描述说明d) 开发样例e) 模拟器与手机版本的运行环境(exe和dll)f) 调试环境的配置说明2. 第3方公司按照sdk开发调试插件3. 第3方公司协调卓望使用测试环境进行线上测试4. 该插件接入M-Market客户端, 卓望进行接入测试5. 该插件正式接入M-Market客户端现网版本5.2 功能插件开发规范功能插件

19、是用于完成某专门功能的独立的, 基于服务的概念进行设计的程序逻辑. 它可以完成加解密, 播放音频, 视频, 短彩信操作等功能.每个功能插件都会分配一个服务标识(serviceid), 在启动时注册此服务, 浏览器/其它插件调用此服务, 功能插件完成服务.5.2.1 功能插件接口规范:a) 功能插件必须定义一个serviceid, 要求为不超过50个字节的字母, 数字,小数点组成的字符串, 该字符串必须在整个系统中唯一. 必须由公司名称.插件名称这样的组合形成, 如aspire.mplayer, disk, 12530.mplayer 这样的字符串. 注: 大小写不敏感. 插件引入时会对serv

20、iceid做强制性检查.b) 功能插件在初始化时注册此serviceid的服务对象和处理函数, 在浏览器或其它模块需要本功能插件的能力时, 可以通过serviceid请求功能插件进行服务.c) export一个静态函数用于创建能力插件, 如:IMPORT_C INLPluginBase* CreateXXPlugin();此export函数序号在插件信息列表中必须说明. 首选是1.d) 功能插件必须继承INLPluginBaseclass IPluginBaseInfpublic:virtual void SetPlugEnv(MIPlugEnv* pEnv) = 0;virtual void

21、 Initialize() = 0;virtual void Release() = 0;virtual TInt GetViewCount() = 0;virtual CAknView* CreateAknView(const TInt aViewIndex, const TUint aParentViewID) = 0;class INLPluginBase : public IPluginBaseInf;方法声明:Initialize在业务插件启动时被调用做初始化工作, 此时需要注册serviceidRelease方法在M-Market客户端退出时调用GetViewCount与Creat

22、eAknView用于创建view加入appui管理SetPlugEnv设置与MM客户端托座的接口句柄e) MIPlugEnv是业务插件托座句柄, 便于业务插件调用托座能力及注册能力服务, 定义如下:class MIPlugEnvpublic:virtual TUint GetNewViewID() = 0; virtual void Release() = 0;virtual int RegisterService(const char* aServiceID, void* aClass, ServiceFuncIn aFunc) = 0;virtual int CallService(con

23、st char* aServiceID, void* aParam) = 0;virtual int UnRegisterService(const char* aServiceID) = 0;virtual int RegisterService(TInt aServiceID, void* aClass, ServiceFuncIn aFunc) = 0;virtual int CallService(TInt aServiceID, void* aParam) = 0;virtual int UnRegisterService(TInt aServiceID) = 0;GetNewVie

24、wID是提供给业务插件创建新view的接口, 每个子view的id在本应用中必须唯一, 才能保证ActiveLocalView切换到正确的view上, 所以在IPlugEnv提供此服务, M-Market中每个模块创建view都必须使用此函数返回的viewid.基于字符串的serviceid系列api是普通能力的接口基于整数的serviceid系列api是托座能力的接口Release接口, 第3方插件无需关心l RegisterService(const char* aServiceID, void* aClass, ServiceFuncIn aFunc)RegisterService用于注

25、册serviceid, aClass是能力服务对象指针, aFunc是该能力服务对象的静态类函数, 由ServiceFuncIn定义typedef void (*ServiceFuncIn)(void* aClass, void*aParam);该静态函数的第一个参数是对象指针, aClass, 第2个参数是aParaml CallService是调用能力, aParam是参数, 托座负责根据serviceid转变为调用(*aFunc)(aClass, aParam)l UnRegisterService是注销服务, 一般在INLPluginBase:Release里调用其它约束:每个功能插件

26、如果在服务中实现了切换view操作, 如从浏览器页面切换到播放器界面, 需要该功能插件保存前一个view的id, 在从功能插件的view返回时, 功能插件执行切换回前一个view id的工作.5.2.2 实际开发流程举例:假设12530音频播放能力插件加入到M-Market客户端:a) 中央音乐平台拿到客户端开发sdk与后台业务接入规范b) 明确中央音乐平台音乐业务基于浏览器+功能插件的方式引入业务c) 与后台明确业务数据接入方案, 明确pps页面开发d) 确认使用serviceid为12530.mplayere) 定义pps中调用新音频播放器的特殊标签为aspapi cmd=12530.mp

27、layer value=zsxdmsr.aac最熟悉的陌生人http:/10.1.3.143:9009/music/musiclib/zsxdmsr.aac?msisdn=13612345678http:/10.1.3.143:9009/music/musiclib/zsxdmsr.lrc?msisdn=13612345678萧亚轩262060最熟悉的陌生人f) M-Market客户端解析页面标签, 检测到此cmd为功能插件, 解析并尝试调用serviceid=12530.mplayer, 并以上面红色部分作为参数(这里隐含插件未安装或未启动的下载, 安装, 启动操作)g) 基于以上, 中央音

28、乐平台按照sdk开发音频播放插件, 定义能力服务主类等等, 下面列出一个概要IMPORT_C INLPluginBase* Create12530MPlayerPlugin();class C12530Mplayer: public INLPlugBase static void ServiceFunc(void* aThis, void* aParam);.CXXMplayer: SetPlugEnv(MIPlugEnv* aPlugEnv)iPlugEnv = aPlugEnv;CXXMplayer: Initialize()iPlugEnv-RegisterService(12530.m

29、player, this, & ServiceFunc);CXXMplayer: Release()iPlugEnv-UnregisterService(12530.mplayer);delete this;TInt CXXMplayer:GetViewCount() return 0;CAknView* CXXMplayer:CreateAknView(const TInt aViewIndex, const TUint aParentViewID) return NULL; h) 中央音乐平台编译通过音频播放器能力插件i) 中央音乐平台协调卓望在测试环境部署测试页面, 里面包含测试标签j)

30、 模拟器调试: 第3方在模拟器上构建调试环境, 手工修改插件管理的配置信息列表, 模拟插件已完成下载安装的过程, 然后启动模拟器运行M-Market客户端, 访问测试页面, M-Market客户端解析页面, 加载插件, 初始化与调用服务, 12530插件入口被激活可以调试k) 真机测试: 中央音乐平台在真机上安装M-Market客户端测试版本, 手动安装12530插件, 手工修改插件管理的配置信息列表, 模拟插件已完成下载安装的过程, 然后启动运行M-Market客户端, 访问测试页面, M-Market客户端解析页面, 加载插件, 初始化与调用服务, 12530插件入口被激活可以测试.l)

31、中央音乐平台插件开发测试完成, 联系卓望进行发布测试, 卓望在测试环境发布能力插件, 引入该业务对应的pps系统, 配置专用apn局数据, 访问该业务页面验证插件下载, 安装, 运行过程, 测试反馈.m) 中央音乐平台插件正式引入, 后台业务正式引入.5.3 业务插件开发规范业务插件定义是作为M-Market客户端的一个独立的业务功能, 在首页上体现为一个业务频道入口, 业务数据不是基于浏览器方式呈现, 而是由该业务插件自己呈现.在用户点击该频道时M-Market客户端会加载该插件并切换界面到插件开始业务服务.5.3.1 业务插件接口规范:a) 业务插件必须提供一个export的静态函数用于托

32、座创建业务插件句柄, 如IMPORT_C IYWPluginBase* CreateXXPlugin();此export函数序号在插件信息列表中必须说明. 首选是1.b) 第3方业务插件必须继承类IYWPluginBase:class IPluginBaseInfpublic:virtual void SetPlugEnv(MIPlugEnv* pEnv) = 0;virtual void Initialize() = 0;virtual void Release() = 0;virtual TInt GetViewCount() = 0;virtual CAknView* CreateAkn

33、View(const TInt aViewIndex, const TUint aParentViewID) = 0;class IYWPluginBase : public IPluginBaseInfpublic: virtual void StartService(TInt aReturnViewID) = 0;方法声明:在业务插件启动时, 托座会调用GetViewCount和CreateAknView允许插件创建自己的视图, 如对于12530播放器只有一个12530播放主界面窗口. Release方法在M-Market客户端退出时调用Initialize在业务插件启动时被调用做初始化工

34、作StartService是加载业务插件后, 托座启动业务插件的入口函数, 该函数在激活业务时会切换到该业务插件的view 0开始业务.IPlugEnv定义参考前面的说明.创建view使用的viewid也必须通过IPlugEnv的GetNewViewId接口获取.5.3.2 业务插件开发流程举例:假设一个中央音乐平台接入M-Market客户端.n) 中央音乐平台拿到客户端开发sdk与后台业务接入规范o) 明确新业务基于业务插件的方式引入业务p) 与后台明确业务系统接入方案, 明确开发与正式环境接入方案, 接口, 局数据等q) 确认频道名字12530, 首页显示资源(焦点, 非焦点图片等), 确

35、认业务插件dll名字12530_0xe000abcd.dllr) M-Market客户端登录时获取频道数据, 检测到12530为业务插件, 在用户点击12530频道时, 加载此插件(这里隐含插件未安装或未启动的下载, 安装, 启动等操作)并切换到12530视图s) 12530根据业务逻辑与自己的后台服务器通信提供业务功能与展示逻辑t) 基于以上, 中央音乐平台按照sdk开发12530业务插件, 定义主类等等, 下面列出一个概要IMPORT_C IYWPluginBase* Create12530Plugin();class C12530: public IYWPlugBasevoid SetP

36、lugEnv(MIPlugEnv* pEnv) iPlugEnv = pEnv; int GetViewCount() return 1;virtual CAknView* CreateAknView(const int aViewIndex, const TUint aParentViewID) = 0;void Release() delete this; virtual void Initialize(IPlugEnv* pEnv) = 0;void StartService(TInt aReturnViewID);.private:MIPlugEnv* iPlugEnv;u) 中央音乐

37、平台编译通过12530插件v) 中央音乐平台协调卓望在测试环境部署测试频道, 可以导航到该业务频道w) 模拟器调试: 中央音乐平台在模拟器上构建调试环境, 手工修改插件管理的配置信息列表, 模拟插件已完成下载安装的过程, 然后启动模拟器运行M-Market客户端, 访问测试频道, M-Market客户端加载插件, 初始化插件, 切换到该插件view, 12530插件入口被激活可以调试x) 真机测试: 中央音乐平台在真机上安装M-Market客户端测试版本, 手动安装12530业务插件, 手工修改插件管理的配置信息列表, 模拟插件已完成下载安装的过程, 然后启动运行M-Market客户端, 访问

38、测试频道, M-Market客户端加载插件, 初始化插件并切换到插件view, 12530插件入口被激活可以测试.y) 12530业务插件开发测试完成, 联系卓望进行发布测试, 卓望在测试环境发布业务插件, 引入(部署)该业务后台系统, 配置专用apn局数据, 访问该业务频道验证插件下载, 安装, 运行过程, 测试反馈.z) 12530业务插件正式引入, 后台业务正式引入.5.4 M-Market客户端托座提供的能力1. M-Market客户端平台/托座也是通过服务id来提供服务. 不过出于性能的考虑, 托座是使用整数作为服务id的索引.IPlugEnv提供了注册与调用服务能力的核心, 对托座

39、功能, 除了索引是使用整数而不是字符串而外, 其它接口完全一致, 参考前面的说明.2. M-Market目前对外提供的服务id:1) Get_Key_Map_URL = 1001, /关键字Url映射表, 如获取音乐搜索URL等2) Get_Domain_Map_Ip = 1002, /域名IP映射表3) Get_MM_FilePath= 1003, /文件存放路径4) ASP_SSO_TOKEN = 1004, /获取sso令牌5) GET_Version =1005, /获取版本信息6) GET_WEATHER = 1006, /获取天气预报信息7) RUN_BROWSER = 1007,

40、 /启动浏览器(具有业务初始化性,如果是从其它非浏览器View调用会清除浏览器历史记录)8) GET_CONNECTION_INFO = 1008, /获取连接信息9) GET_MSISDN = 1009, /获取手机号码信息10) GET_USERAGENT = 1010, /获取User Agent信息11) OPEN_BROWSER = 1013, /启动浏览器(不具有业务初始化性,如果是从其它非浏览器View调用不会清除浏览器历史记录)12) BROWSER_REFRESH = 1014, /浏览器刷新13) RADIUS_INFO =1015, /代理服务器信息5.5 M-Market客户端托座提供的广告控件接口广告插件使用ServiceID:CREATE_ADCONTROL=400,创建广告控件窗口,广告条的属性包括:展示位置:TOP_ALIGN:页眉广告;BOTTOM_ALIGN:页脚广告;SPLASH:闪屏广告,用于插件启动时展示;创建后应返回一个CAdControl*类型的指针,由插件对这个指针进行管理。调用GetMinSize()获取控件的最小尺寸,并可以调用GetStyle()获得当前广告的属性,有关属性如上所述。控件获得焦点时,将处理OK键,插件应将此键码提供给广告控件处理,打开广告指向的URL。6 附录16

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!