Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

kunfei 3 лет назад
Родитель
Сommit
42c59b498a

+ 33 - 1
app/src/main/assets/help/jsHelp.md

@@ -15,6 +15,24 @@
 
 ## 当前类对象的可使用的部分方法
 
+### [RssJsExtensions](https://github.com/gedoor/legado/blob/master/app/src/main/java/io/legado/app/ui/rss/read/RssJsExtensions.kt)
+> 只能在订阅源`shouldOverrideUrlLoading`规则中使用  
+> 订阅添加跳转url拦截, js, 返回true拦截,js变量url,可以通过js打开url  
+> 例子https://github.com/gedoor/legado/discussions/3259
+
+* 调用阅读搜索
+
+```
+java.searchBook(
+bookName)
+```
+
+* 添加书架
+
+```
+java.addBook(bookUrl)
+```
+
 ### [AnalyzeUrl](https://github.com/gedoor/legado/blob/master/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt) 部分函数
 > js中通过java.调用,只在`登录检查JS`规则中有效
 ```
@@ -64,6 +82,12 @@ java.put(key, value)
 
 ### [js扩展类](https://github.com/gedoor/legado/blob/master/app/src/main/java/io/legado/app/help/JsExtensions.kt) 部分函数
 
+* 链接解析[JsURL](https://github.com/gedoor/legado/blob/master/app/src/main/java/io/legado/app/utils/JsURL.kt)
+
+```
+java.toURL(url): JsURL
+java.toURL(url, baseUrl): JsURL
+```
 * 网络请求
 
 ```
@@ -83,7 +107,13 @@ java.head(url: String, headerMap: Map<String, String>): Connection.Response
 * @param url html内如果有相对路径的资源不传入url访问不了
 * @param js 用来取返回值的js语句, 没有就返回整个源代码
 * @return 返回js获取的内容
-java.webView(html: String?, url: String?, js: String?): String
+java.webView(html: String?, url: String?, js: String?): String?
+
+* 使用webView获取跳转url
+java.webViewGetOverrideUrl(html: String?, url: String?, js: String?, overrideUrlRegex: String): String?
+
+* 使用webView获取资源url
+java.webViewGetSource(html: String?, url: String?, js: String?, sourceRegex: String): String?
 
 * 使用内置浏览器打开链接,可用于获取验证码 手动验证网站防爬
 * @param url 要打开的链接
@@ -195,6 +225,8 @@ deleteFile(path: String)
 
 > 其他没有添加的算法可在JavaScript中使用`JavaImporter`[调用](https://m.jb51.net/article/92138.htm)Java,例子可参考`朗读引擎-阿里云语音`  
 
+> 注意阅读app会屏蔽部分java类调用,见[RhinoClassShutter](https://github.com/gedoor/legado/blob/master/modules/rhino1.7.3/src/main/java/com/script/rhino/RhinoClassShutter.kt)
+
 > 注意:如果输入的参数不是Utf8String 可先调用`java.hexDecodeToByteArray java.base64DecodeToByteArray`转成ByteArray
 * 对称加密
 > 输入参数key iv 支持ByteArray|**Utf8String**

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
app/src/main/assets/web/vue/assets/BookChapter-9bb53da5.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
app/src/main/assets/web/vue/assets/BookShelf-4dd1510d.js


+ 1 - 1
app/src/main/assets/web/vue/assets/config-dd18a77f.js → app/src/main/assets/web/vue/assets/config-56304acd.js

@@ -1 +1 @@
-import{A as f,u as i}from"./index-e7b92a96.js";import"./vendor-b9134af1.js";f.getReadConfig().then(e=>{var t=e.data.data;if(t){const a=i();let o=JSON.parse(t),s=a.config;o=Object.assign(s,o),a.setConfig(o)}});
+import{A as f,u as i}from"./index-0af0d34a.js";import"./vendor-b9134af1.js";f.getReadConfig().then(e=>{var t=e.data.data;if(t){const a=i();let o=JSON.parse(t),s=a.config;o=Object.assign(s,o),a.setConfig(o)}});

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
app/src/main/assets/web/vue/assets/index-0af0d34a.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
app/src/main/assets/web/vue/assets/loading-db04d821.js


+ 1 - 1
app/src/main/assets/web/vue/index.html

@@ -4,7 +4,7 @@
         <meta charset="UTF-8" />
         <link rel="icon" href="./favicon.ico" />
     <meta name="viewport" content="width=device-width,initial-scale=1.0" />
-      <script type="module" crossorigin src="./assets/index-e7b92a96.js"></script>
+      <script type="module" crossorigin src="./assets/index-0af0d34a.js"></script>
       <link rel="modulepreload" crossorigin href="./assets/vendor-b9134af1.js">
       <link rel="stylesheet" href="./assets/vendor-5578283d.css">
       <link rel="stylesheet" href="./assets/index-bd50a38f.css">

+ 6 - 0
modules/web/src/config/rssSourceEditConfig.js

@@ -164,6 +164,12 @@ export default {
         type: "String",
         hint: "webView链接加载白名单,英文逗号隔开",
       },
+      {
+        title: "链接拦截",
+        id: "shouldOverrideUrlLoading",
+        type: "String",
+        hint: "填写js,变量url为当前资源链接,返回true拦截",
+      },
     ],
   },
   other: {

Некоторые файлы не были показаны из-за большого количества измененных файлов