目錄
概述
Syncnext 插件系統允許開發者通過 JavaScript 擴展應用的內容源。插件運行在隔離的 JavaScriptCore 環境中,通過標準化的 API 與原生應用通信。
核心特性
- 🔒 安全沙箱環境 - JavaScript 代碼在隔離環境執行
- 🚀 異步操作支持 - 完整的 Promise 支持
- 🎯 智能源選擇 - 自動評分選擇最佳播放源
- 🔗 網絡請求能力 - 內置 HTTP 客戶端
- 💾 數據持久化 - UserDefaults 存儲支持
快速開始
最小插件示例
- 創建插件配置文件
plugin.json:
- 創建主要 JavaScript 文件
main.js:
插件配置結構
完整配置文件結構
配置參數說明
參數 | 類型 | 必需 | 說明 |
name | string | ✅ | 插件名稱 |
description | string | ✅ | 插件描述 |
permission | string | ❌ | 特殊權限請求(如 "alidrive") |
host | URL | ✅ | API 基礎地址 |
files | string[] | ✅ | JavaScript 文件列表(按順序加載) |
pages | Page[] | ✅ | 內容分類頁面列表 |
episodes | JavascriptModel | ✅ | 劇集獲取配置 |
player | JavascriptModel | ✅ | 播放地址獲取配置 |
search | JavascriptModel | ✅ | 搜索功能配置 |
JavaScript API 參考
全局對象
插件可以使用以下全局對象:
$next - 核心通信接口
與原生應用通信的主要接口。
方法列表
$http - HTTP 客戶端
用於發送網絡請求。
fetch 方法
head 方法
$prefs - 偏好設置存儲
用於持久化存儲插件設置。
console - 日誌輸出
用於調試輸出。
標準 JavaScript API
數據模型
StandardMediaData - 媒體數據
StandardMediaEpisode - 劇集數據
StandardPlayerData - 播放數據
EpisodesCandidateGroup - 劇集候選組
開發流程
1. 環境準備
- 創建項目目錄結構:
- 配置本地測試服務器(用於開發):
2. 實現核心功能
頁面加載函數
劇集獲取函數
智能播放源選擇
3. 處理複雜場景
加密內容處理
多源劇集選擇
最佳實踐
1. 錯誤處理
2. 性能優化
3. 用戶體驗
4. 安全考慮
示例插件
完整示例:簡單視頻網站插件
plugin.json:
utils.js:
main.js:
調試與測試
1. 開發環境調試
在 Syncnext 應用中:
- 進入「設置」→「插件開發」
- 輸入本地服務器地址(如
http://localhost:8080/plugin.json)
- 啟用「調試模式」查看 console 輸出
- 測試各項功能
2. 調試技巧
3. 常見調試場景
常見問題
Q1: 如何處理需要登錄的網站?
Q2: 如何處理分頁?
Q3: 如何處理 M3U8 流媒體?
Q4: 如何處理字幕?
Q5: 如何處理複雜的 HTML 解析?
發布插件
1. 部署到服務器
將插件文件部署到支持 HTTPS 的服務器:
- 確保
plugin.json可通過 HTTPS 訪問
- 所有 JavaScript 文件路徑正確
- 設置適當的 CORS 頭部
2. 提交到插件庫
- Fork Syncnext 插件庫
- 添加你的插件信息到
plugins.json
- 提交 Pull Request
3. 版本更新
在
plugin.json 中添加版本信息:支持與社區
- 📖 官方文檔
- 💬 討論區
- 🐛 問題反饋
- 📦 插件倉庫
許可證
插件開發遵循 MIT 許可證。請確保你的插件遵守相關法律法規,不侵犯版權。
最後更新:2024年
Loading...