技术 / 架构与实现

16 原生桥、系统保存与只读分享

基于 Android 1.0.2 / 1.0.2-trial · 2026-10-10 · 完整正文
读取已有成品 → 多层校验 → 用户选择目标读取已有成品 → 多层校验 → 用户选择目标保存分享用户点保存/分享任务或作品页原生桥解析URL或路径当前本机源 · 固定媒体路由Python文件白名单任务媒体/导出记录 · 非空非pendingJava再次canonical校验允许目录/类型/文件ACTION_CREATE_DOCUMENT64KiB复制到用户所选URIACTION_SEND+content URI随机映射 · 只读grant · Provider复核
图6|安全导出链。保存是复制到用户URI;分享是通过只读内容URI授予目标应用访问,不开放任意私有文件。小屏可横向滚动查看图示

NativeBridge接口

方法 正式版用途 试用附加情况
saveDraft(json) Python persist_draft,boolean返回 仍受累计计数,不能绕过额度
exportUrl(url,share) 将允许媒体URL解析成安全文件,保存或分享 到期也可导出已有成品
exportPath(path) 路径导出,先Python再Java检查 相同
openLibrary() 打开作品列表 相同
appInfo() 返回platform/sdk/真实APK version 返回1.0.2-trial
trialUpgradeShown() 不提供 读取首次成片购买提示标记
showTrialUpgrade(completed) 不提供 true首次成片提示,false实际到期
copyWechat() 不提供 复制wzqy2019
finishAfterDraft() 不提供这一试用专属配合方法 保存队列成功完成后才后退/finish

桥没有任意shell执行入口,其安全依赖主WebView只加载可信本机内容,并在导出时再次限制来源和路径。不能仅凭桥方法的@JavascriptInterface就认为任何远端页面都可获得相同能力。

多层导出校验

  1. URL必须当前本机源,只识别日志导出、任务媒体、图库图和已归档MP4的固定路由结构。
  2. Python checked_export解析文件路径,只允许root/jobs或root/records内现有非空文件,拒绝链接、未完成文件和其他扩展。
  3. resolve_export_path再检查任务三级路径:audio.mp3必须ready,MP4经archive_video_path,图必须当前image_paths或允许cover;records只能tingwen-records.json。不能通过桥导出job.json、任意私有文件或partial语音片段。
  4. Java ExportPolicy再次canonical路径验证,确认目录范围、类型和非空。
  5. 保存发ACTION_CREATE_DOCUMENT,按64KiB块向用户URI复制;取消选择不删除原文件,保存中保留pendingExport状态。
  6. 分享生成随机token,私有SharedPreferences保存安全路径映射,发content URI并授予只读权限/ClipData;Provider每次访问复核路径,只允许r模式,无增删改。

分享token映射代码中没有固定时间过期或回收器,故不能承诺“数分钟后自动失效”;系统URI读取授权与文件仍存在/合法共同决定能否读取。

Android系统文件选择和文档创建属于SAF机制;Android SAF文档解释通过系统选择器访问用户选定文件。项目实际导入还会按API版本优先系统照片选择器,且无需Manifest中的全盘存储权限。

归档视频接口和任务media/video条件不同:任务media/video只在done可用,/api/videos/<id>/media?filename=...按实际成片文件校验,可以在换图后访问保留旧MP4。兼容reveal接口在Android返回android_export_path或android_library,再由移动JS转换为保存/作品页,而不是启动Finder。

依据:MainActivity.java:277–360、ExportPolicy.java:29–47、ExportProvider.java:15–59、android_runtime.py:23–34,207–269、app.py:530–581,820–861。

把这些功能用到你的内容里。

免费试用、正式版优惠授权与招商合作:微信 wzqy2019。说明你需要配音、照片视频、PC或Android端,我们一起确定适合的使用方式。

合作从一次沟通开始

让你的内容制作,
找到合适的工作台。

免费试用、优惠授权、PC与Android版本、工作室及渠道合作意向,欢迎直接咨询。

打开微信,搜索 wzqy2019,添加时备注“听文合作”。具体授权、价格与合作政策以沟通为准;本站不收款。