入门
开发指南
- 模块
- 控件基础知识
- 控件树
- 选择器 API
- 布局
- 手势和触摸事件
- W3C APIs 兼容
- Cordova 插件支持
- EcmaScript 6,TypeScript 和 JSX
- Windows 10 支持说明
- 构建 Tabris.js App
- Tabris.js App 补丁
API 参考文档
- app
- device
- fs
- localStorage
- ui
- ActionSheet(操作列表)
- AlertDialog(对话框)
- CanvasContext
- InactivityTimer(闲置定时器)
- NativeObject
- Popup(弹出窗)
- Timer(计时器)
- WidgetCollection
控件
- Action
- ActivityIndicator
- Button
- Canvas
- CheckBox
- CollectionView
- Composite
- Drawer
- ImageView
- NavigationBar
- NavigationView
- Page
- Picker
- ProgressBar
- RadioButton
- ScrollView
- SearchAction
- Slider
- StatusBar
- Switch
- Tab
- TabFolder
- TextInput
- TextView
- ToggleButton
- Video
- WebView
- Widget
自定义控件
Tabris.js App 补丁
向app store发布新的app版本可能需要一些时间。Tabris.js允许直接向你的用户发布热更新,而无需等待app store更新。
为了符合Apple App Store的规则,修补程序必须“[…] not change the primary purpose of the app by providing features or functionality that are inconsistent with the intended and advertised purpose”(iOS开发者计划许可协议第3.3.2节)。
补丁格式
补丁是一个zip文件,其中包含要修改或添加的app文件,以及名为patch.json
的可选描述文件。 有关patch.json描述文件的更多信息,请参见下文。
你可以修改app中的任何文件,包括脚本、图片,甚至node_modules
文件夹中的模块。 zip文件的根目录对应于Tabris.js项目的根目录。例如,要更新文件app.js并添加另一个文件img/image.jpg,修补程序可以如下所示:
示例项目结构
src
├── app.js
└── …
…
package.json
相应的补丁zip内容
src
└── app.js
img
└── image.jpg
patch.json
如果你有本地的cordova版本,在将源文件复制到文件夹
cordova/www
中之前,你可能已经进行了预处理。在这种情况下,补丁必须对应于最终在cordova/www
中的文件。
发现补丁
创建补丁后,你必须在你选择的URL上使其可以下载。然后,应用程序可以发现补丁并下载。
你可以用适合你的方式实现补丁检测。例如,可以设置一个REST服务,为给定的应用程序、平台和版本提供可用的补丁信息。 应用程序可以定期检查此服务。你还可以使用推送通知来通知app可用的补丁。
安装补丁
要安装修补程序,需要调用app.installPatch
方法,并传递补丁文件的URL和具有两个参数的回调函数(error 和 patch)作为参数。补丁文件会在后台下载并安装,但在app重新加载之前不会有影响。
Tabris.js支持cache-control header。 如果Tabris.js没有找到新的更新,请检查HTTP服务器的缓存无效设置。
在出现错误的情况下,使用Error对象作为第一个参数来调用回调函数。error.message
字段会包含错误消息。如果补丁成功安装,则第二个参数将包含补丁文件中的patch.json文件的解析内容(如果有的话)。
Tabris.js不强制要求patch.json描述文件的格式和内容。你可以使用它来包含补丁的详细信息,例如要显示的版本号或确认消息。
在下一次app启动时,补丁中存在的文件将覆盖app文件。你可以使用回调来确认并重新加载app。这是一个简单的例子:
app.installPatch(patchUrl, (error, patch) => {
if (error) {
// show error dialog
} else {
// confirm reload
app.reload();
}
});
多个补丁可以彼此覆盖。如果app已经打好补丁了,则后续的补丁会覆盖以前的补丁。
此功能是临时性的,并且此处的API说明可能会在将来的版本中进行调整。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论