OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

想要出售你的 CS 扩展?

  • 2011-08-12
  • 本文字数:2956 字

    阅读完需:约 10 分钟

目录

要求

预备知识

这篇文章假设你有 CS 套件的基于 Flash 可扩展性的基本知识。

本文讨论第三方开发者如何使用已有的技术来分发和出售 CS 扩展包。

应用商店

App 商店的普遍概念是和移动元件相关,但是最近几个月,它开始扩展到了机遇 web 技术的应用(大部分在浏览器的 context 里面运行)。 在这个部分,我们讨论如何使用两个这样的店铺,Chrome Web 商店和 Intel AppUp,来帮你出售和分发 CS Extension。

Chrome web store

Chrome web 商店 * 是一个在线的 app,扩展包,还有在 Google Chrome 网页浏览器里面使用的主题包的交易场所,为用户提供了一个不一样的,交互更强的体验。

在我们的实验中,我们主要是开发一个 Google Chrome 浏览器的应用,这个应用以一个分部机制的扩展包的角色来运行的。可以 为 Chrome Web Store 开发的应用* 可以被 Hosted* 或者 打包 * 。在所有案例中,应用架构就像一个“普通的网站”,除了一个 CRX manifest 文件。Hosted 的应用都被描述成一个普通的 web 应用,只不过在打包好的待售的“可安装 web 应用”的时候多了一点点元数据。这意味着打包好的应用可以离线工作,并且可以让 Google Extension APIs 使用。

那这与出售 CS 扩展有何关系?打包的应用可以包含额外的文件,并且可以用以下代码指向它们:

复制代码
var zxpLoc = chrome.extension.getURL("HelloWorld.zxp");

通过可以纳入我们的 CS 扩展包作为额外文件,我们可以:

  • 在初始化页面的时候下载 ZXP 扩展包。
  • 在页面上有下载链接。

图 1. 包含了一个 CS Extension 的打包好的 Chrome App 的概览。

为了让大家有个概览,工作流如下:

  1. 导航至 Google Chrome Web Store。
  2. 找到你的 Chrome App。
  3. 付钱然后安装应用。
  4. 导航至你的应用的主页 (HTML 文件包含在 app 文件夹里面;图一中的 index.html 就是了)。
  5. 激活 ZXP 的下载。

图 2 展示了 ZXP 下载完成。 当用户点击左下角的按钮的时候,Adobe Extension Manager 开始运作,安装这个扩展包。

图 2. 从 Google Chrome 浏览器的一个 Packaged App 里下载。

在这个范例中,ZXP 可以免费下载和分享。 为了保护你的扩展包被通过不正当的手段分发,我们正在关注另一种技术, Netscape Plugin API (后面的部分讨论)。

Intel AppUp

AppUp* 是 Intel 的应用分发 商店。它关注分发应用至基于 Intel?? Atom?? 处理器的移动存储设备。 AppUp SDK* 支持很多语言,包括 C/C++,.NET, Java,HTML5 和 Adobe AIR. 在我们的实验中,我们使用 Adobe AIR SDK* 提交一个包含 CS 扩展包的应用。当下载好 AIR 应用的时候,它启动了 Adobe Extension Manager 并安装 CS 扩展包.

你可以使用 C/C++, .NET 和 Java 库来执行同样的工作流。

总结

这个部分介绍了一些扩展他们的用户群到移动设施内容分发领域之外的应用商店。我们展示了你可以怎样使用这些来增加你的 CS 扩展包的可用性,并且避免了一些基础设施的花费。以下范例是未经优化的解决方案,但是给你说明了你该怎么将这些技术整合到你的配置工作流里面去。

Netscape 插件 API

Netscape Plugin API (NPAPI) 是一个插件结构,开始为 Netscape 家族的浏览器开发的。然后它逐步演变成了包含跨平台支持,并且用在大量的浏览器中。 最明显的异常是 Windows 的 IE,它在 5.5 版中不屑于支持,但是现在却用 ActiveX。

此种架构让开发者可以在浏览器中提供本地代码去处理不支持的内容类型。 比较知名的一个范例是用于 PDF 文件查看; 在不用下载文件到本地的情况下, PDF 插件可以让你在浏览器的 context 里面查看文档。

同样的工作流用于查看 Flash 内容。浏览器与插件之间的通讯是使用 JavaScript 建立的, 里面的很多方法是本地代码执行的。

在为 Chrome Web Store* Intel AppUp* 制作应用的时候,你可能注意到了跨浏览器方面的或者代码的重用性的贫乏。我们已经打包了为 AppUp 商店开发 AIR 应用为 Chrome 打包应用,尽管我们在本范例中没有做这个。

我们在 Netscape 插件方面的兴趣并不止于它的跨平台能力,也同样在于它取得安装流程的控制权的能力。如我们在 Chrome web 商店范例中所知,一旦 ZXP 文件下载完成,没有任何限制可以阻止用户分享 ZXP。使用 NPAPI,我们在网页浏览器 context 的下载体验中有更好的控制权。

原型

我们决定开发一个支持 ZXP 内容类型的 Netscape 插件。我们用 Chrome 和 Firefox 来做试验,我们嵌入一个内容类型 x-zxp-helloworld 到一个简单的 HTML 页面:

复制代码
<embed type='application/x-zxp-helloworld' hidden='true' id='plugin0' />

使用 JavaScript, 我们使用 Netscape 插件通讯以传送文件内容。 一旦文件加载完成,我们通过本地插件启动 Adobe Extension Manager 安装 CS 扩展包。

总结

使用这个工作流,我们可以改善安全性,因为在启动 Adobe Extension Manager 和清理任务(包括 ZXP 包文件的移除)方面,我们有了更好的控制权。

例如,我们可以使用一个加密包,或者一旦 CS 扩展包安装完成简单的移除下载内容。两种手法都可以组织不合法的分发。

这些都是执行 Netscape 插件的比较明显的优点。我们的范例显示,关联性的简化,你可以怎样相对简单的分发你的扩展包到一个已有的提供支付选择的途径。

Web 服务

对于另一个使用 CS 扩展包赚钱的不同途径,我们关注了一些可用的 Payment Web Services ( 网络支付服务) 例如 Paypal* Google Checkout* 。这个改变了我们使用扩展包赚钱的观点。我们要求用户在第一次下载 CS 应用里面的扩展包的时候要求用户支付,代替使用 Web Store 期望下载后支付。

这个方法意味着我们可以整合一系列的网络支付服务,且不受限于一个供应商。所有的支付逻辑都包含在扩展包内。同样,我们也可以使用 ActionScript 代替需求额外的本地扩展,JavaScript,和 HTML。另外,他允许我们提供不同的选项,例如试用 subscriptions 和免费 / premium 版。

实际上的订购工作流体验取决于你实际上连接到的系统。我们的原型实现在扩展包内使用了 HTML 对象 类嵌入浏览器工作流。

复制代码
<mx:HTML height="100%" width="100%" id="htmlField" />

一旦扩展包初始化完成,htmlField 就派发正确的 HTML 去和网络支付服务交互。当然,你也可以在你的应用里面允许使用扩展包之前,打开一个页面浏览器来订购。

总结

这个可选方法出售扩展包并不要求一个很贵的分发工作流,或者一个 Web Store 的提交。尽管如此,除非你有你自己的支付服务,你必须调整供应商的支付工作流;这个也许意味着打开一个浏览器,或者在你的应用内容里面展示供应商的 UI。

延伸阅读

本文是 Adobe 关于使用 CS 扩展包赚钱这个主题的调查。我们验证了一些已有的第三方可用的帮你用 CS 扩展包赚钱的技术,同时也提供了一些指导给你指引。也许你想要使用一个或者这些范例中的多个,或者开发一个不同的途径。

我们了解使用 CS 扩展包赚钱的开发者和用户基础的重要。我们将持续研究这个空间,和你分享我们的发现和想法。 敬请关注 CS Extension Builder 随时更新。

本文中讨论过的相关技术的更多信息请关注:

本文未讨论的其他技术如下:


本文基于 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License* 协议发布。

查看原文:想要出售你的 CS 扩展?

2011-08-12 00:23706

评论

发布
暂无评论
发现更多内容

从装大象中我们学会了什么设计模式

skow

Java 面试 后端 设计模式

FIL币最新价格怎么样?FIL币最新消息是什么?

数牍科技亮相上海 AI 基金“AI 驱动企业转型” 应用场景战略合作仪式,隐私计算拓展AI应用疆域

Go 学习笔记之 函数

架构精进之路

Go 语言 7月日更

我写什么,你们决定

喵叔

夏令营|第五届埃文网络安全技能训练营火热报名中

郑州埃文科技

程序员的自我修养-用科学的方法提高交付质量

刘绍

程序员 软件工程 软件质量 TDD 单元测试

阿里P7大牛手把手教你!卧薪尝胆70天内推入职阿里

欢喜学安卓

android 程序员 面试 移动开发

全美第四大无线运营商 DISH 和亚马逊云科技开展战略合作

亚马逊云科技 (Amazon Web Services)

日更总结 6月日更 21天写作

万里无云万里天

6月日更

云图说|ASM灰度发布,让服务发布变得更敏捷、更安全

华为云开发者联盟

灰度发布 application 云图说 应用服务网格服务 Service Mesh (ASM)

铂金10:能工巧匠-ThreadLocal如何为线程打造私有数据空间

MetaThoughts

Java 后端 多线程 并发

直击技术最前沿 | Amazon S3增加新的存档访问层

亚马逊云科技 (Amazon Web Services)

Mtail导致Nginx报警延迟

BUG侦探

运维 监控 日志

台达DOP-100系列触摸屏(LUA程序编写用户管理应用)

林建

lua 台达 触摸屏 用户管理 DOP-100

鸿蒙轻内核源码分析:掌握信号量使用差异

华为云开发者联盟

鸿蒙 数据结构 信号量 结构体 OpenHarmony

智能猫量化机器人炒币系统开发【专业定制、现成源码】

获客I3O6O643Z97

DAPP智能合约交易系统开发 量化策略 量化跟单 量化交易源码

理解Linux 终端、终端模拟器和伪终端

swordholder

Linux Shell SSH Linux Kenel

互联网产品经理之需求的一生

路边水果摊

产品经理

细说.NET 缓存

喵叔

7月日更

英特尔中国研究院宋继强:AI技术已成为推动数字化转型的超级力量|WAIC 2021

E科讯

阿里P7亲自讲解!Android大厂面试真题解析大全

欢喜学安卓

android 程序员 面试 移动开发

由浅入深C A S

程序猿阿星

CAS 自旋锁

全面解读自动驾驶数据存储关键

焱融科技

人工智能 自动驾驶 云计算 高性能 文件存储

Eureka可用性解读

赵镇

Eureka

阿里P9看了都说牛B!阿里巴巴史上最牛的分布式核心原理深度解析全彩手册

Java架构追梦

Java 阿里巴巴 架构 面试 分布式核心原理解析

玩转Spring Boot Actuator集成,基操,勿六

白亦杨

Java

详解 nebula 2.0 性能测试和 nebula-importer 数据导入调优

NebulaGraph

数据库 开源 图数据库

工商银行:应用多k8s集群管理及容灾实践

华为云开发者联盟

容器 多云 工商银行 k8s集群 Karmada

【LeetCode】 H 指数 IIJava题解

Albert

算法 LeetCode 7月日更

10万QPS,K6、Gatling和FunTester对比测试

FunTester

性能测试 接口测试 测试框架 压力测试 测试开发

想要出售你的 CS 扩展?_Java_Lea Savage_InfoQ精选文章