多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
《开发文档所没说的事20200321》 1. 【expr】用户在app正式版首页输入一本漫画的网页网址打开,app会检查官方插件中心上面所有插件的meta节点的expr是否和它匹配,然后app进入匹配的插件界面或者原网页界面,前者的话还会瞬间检查这个插件的book节点的expr是否和它匹配,是的话app就直接进入book节点,否则就进入home节点。 2. 【find】多多猫容器引用的cheerio库,找子元素只能用children()不能用find()。 3. 【GUID】(不再需要写,可忽略)是插件的管理权限,同一个guid 的插件,是替换相同的guid的旧的插件 4. (SiteD引擎)每次的一个`http请求`的过程: 1. 确定url (buildUrl?) 2. 确定参数(buildArgs?)等一些信息(buildHeader?)【buildHeader比buildArgs早运行】 3. http 4. 解析(parseUrl? -> parse)(如果parseUrl返回 "CALL::http://xx.com",会再一次进行2.然后3.然后parseUrl,直到不返回 "CALL::..." ) - PS.如果想把parseUrl里返回的数据作为body内容在后面的parse里post请求是不行的,但可以把parseUrl里返回的数据作为body内容在下一轮parseUrl里post请求(这一轮里return "CALL::POST::下一轮url") 5. `private="1"`效果:两条街不可见,收藏别人不可见,不可通过二维码分享出去。 6. `search节点`的url用了@page也只有第一页结果,是app限制,防止多站搜索结果过多。 7. 【sections】截止v35引擎,附加节点sections节点需要先进入buildUrl才能进入parseUrl;book存储的数据在sections的buildUrl读取不了,需要在后面的parseUrl或parse环节读取。 8. 【ua】在电脑写视频插件解析网站时ua最好用手机(app不支持flash格式),推荐电脑浏览器用Smart Header插件模拟ua。插件每层节点都可以单独设置ua,不写则自动继承父代。 9. 如果源网站`编码`是GBK,插件meta节点里encode写GB18030,以更好兼容全平台设备。 苹果版多多猫不完整对?后面含有GBK等汉字编码的url强制百分号编码导致get请求到别的网页(搜索词改为post方式也失败),安卓uwp版正常。 10. 视频插件的采用`解码`格式:mp4优于ogg优于webm,(苹果版不支持webm)。 对于url有302/301跳转的(引擎会自动跳转),parse/parseUrl函数里读取url参数要在cache=0时才能读取跳转后url(否则引擎会读取缓存找跳转前的url)。 uwp版对于url有302/301跳转的,parse/parseUrl里url参数会在开头自动加上跳转前的域名(结尾没有斜杠),是bug,要`url.replace(/^[^\?]+(https?:)/i,'$1')`去除。安卓ios版正常。 11. 【输出内容】updates节点的newSection在多多猫app界面和name可以兼容共用在同一行。 tag/search节点的author、newSection、updateTime在app界面排斥抢占用同一行(只能按优先度updateTime>author>newSection显示其中一项),status 单独占用下一行。 search节点的status在app界面和【by XX插件】以同时出现共存在同一行。 12. 【调试记录】开启开发者模式:进入安卓多多猫app的设置-高级设置。长按标题的“高级设置”几个字,最底部多出一次性出现的开关。在多多猫目录里/sdcard/Android/data/org.noear.ddcat/files可以找到log运行日志、error日志等。在插件的function里可以写print("字符串"),在app相应节点执行时候会显示出字符串或函数值,在刚才多多猫目录里可以找到print过的日志。正式发布的插件不能运行print,否则在ios等版本中断函数运行。 13. 【域名变化】SiteD引擎开发者说如果插件的域名发生了变化:(SiteD引擎)每次的一个`http请求`的过程: 1. 千万不要改了插件url节点; 1.1 在main节点增加durl属性,是作为最新/实际的源网站地址(url) 1.2 在expr节点内容里同时匹配新旧两个域名的网址,用 \| 隔开 2. 改好插件后;在book节点buildUrl函数对url参数做一下域名替换。这样做:1.为插件兼容性升级;2.同地兼容用户之前已收藏的漫画!!! - 最好按着buildUrl的函数输入输出格式,配套buildWeb。 14. 非js区域`注释`用`<!-- xx --> `。js区域里面不能//注释,可以`/* */`注释,上架时少保留注释,因为多平台兼容性不好。 15. xml代码区、js代码区的特定字符记得`转义`。