From a97e38b82ec07c23dfe332019cf168e4a600b2b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Fri, 17 Jun 2022 14:59:15 +0800 Subject: [PATCH] =?UTF-8?q?1.4.2=20=E4=BF=AE=E5=A4=8D=E9=98=85=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/h.js | 23 ++++++++++++------- .../copymanga/activity/MainActivity.kt | 1 + .../fumiama/copymanga/web/WebViewClient.kt | 20 ++++++++++++---- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/app/src/main/assets/h.js b/app/src/main/assets/h.js index fcb8b87..c455ead 100644 --- a/app/src/main/assets/h.js +++ b/app/src/main/assets/h.js @@ -14,14 +14,21 @@ if (typeof (loaded) == "undefined"){ function modify() { var url = location.href; if(url.indexOf("/chapter/")>0){ - var imglist = document.getElementsByClassName("container-fluid comicContent")[0].getElementsByTagName("li"); - var nextChapter = document.getElementsByClassName("comicContent-next")[0].getElementsByTagName("a")[0].href; - var prevChapter = document.getElementsByClassName("comicContent-prev")[1].getElementsByTagName("a")[0].href; - if(nextChapter == location.href) nextChapter = "null"; - if(prevChapter == location.href) prevChapter = "null"; - var liststr = document.title.split(" - ")[1] + " " + location.href.substring(location.href.lastIndexOf("/")+1) + "\n" + nextChapter + "\n" + prevChapter; - for(var i = 0; i < imglist.length; i++) liststr += "\n" + imglist[i].getElementsByTagName("img")[0].dataset.src; - GM.loadChapter(liststr); + window.scroll({ top: document.body.scrollHeight, left: 0, behavior: 'smooth' }); + setTimeout(() => { + window.scroll({ top: document.body.scrollHeight, left: 0, behavior: 'smooth' }); + setTimeout(() => { + window.scroll({ top: document.body.scrollHeight, left: 0, behavior: 'smooth' }); + var imglist = document.getElementsByClassName("container-fluid comicContent")[0].getElementsByTagName("li"); + var nextChapter = document.getElementsByClassName("comicContent-next")[0].getElementsByTagName("a")[0].href; + var prevChapter = document.getElementsByClassName("comicContent-prev")[1].getElementsByTagName("a")[0].href; + if(nextChapter == location.href) nextChapter = "null"; + if(prevChapter == location.href) prevChapter = "null"; + var liststr = document.title.split(" - ")[1] + " " + location.href.substring(location.href.lastIndexOf("/")+1) + "\n" + nextChapter + "\n" + prevChapter; + for(var i = 0; i < imglist.length; i++) liststr += "\n" + imglist[i].getElementsByTagName("img")[0].dataset.src; + GM.loadChapter(liststr); + }, 500); + }, 500); } else { var json = Array(); var chapters = document.getElementsByClassName("upLoop")[0].children; diff --git a/app/src/main/java/top/fumiama/copymanga/activity/MainActivity.kt b/app/src/main/java/top/fumiama/copymanga/activity/MainActivity.kt index 59abdad..88af6bf 100644 --- a/app/src/main/java/top/fumiama/copymanga/activity/MainActivity.kt +++ b/app/src/main/java/top/fumiama/copymanga/activity/MainActivity.kt @@ -45,6 +45,7 @@ class MainActivity: Activity() { w.loadUrl(getString(R.string.web_home)) wh = JSWebView(this, getString(R.string.pc_ua)) + wh?.webChromeClient = WebChromeClient() wh?.setWebViewClient("h.js") wh?.loadJSInterface(JSHidden()) } diff --git a/app/src/main/java/top/fumiama/copymanga/web/WebViewClient.kt b/app/src/main/java/top/fumiama/copymanga/web/WebViewClient.kt index a134988..e7081f0 100644 --- a/app/src/main/java/top/fumiama/copymanga/web/WebViewClient.kt +++ b/app/src/main/java/top/fumiama/copymanga/web/WebViewClient.kt @@ -2,8 +2,9 @@ package top.fumiama.copymanga.web import android.content.Context import android.graphics.Bitmap +import android.net.http.SslError import android.util.Log -import android.webkit.WebView +import android.webkit.* import android.webkit.WebViewClient import android.widget.Toast import top.fumiama.copymanga.R @@ -22,9 +23,20 @@ class WebViewClient(private val context: Context, jsFileName: String):WebViewCli } override fun onPageFinished(view: WebView?, url: String?) { + view?.loadUrl(js) + Log.d("MyWC", "Inject JS into: $url") super.onPageFinished(view, url) - url?.let { - view?.postDelayed({view.loadUrl(js)}, 1000) - } + } + + override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) { + handler?.proceed() // ignore ssl errors + } + + override fun shouldInterceptRequest( + view: WebView?, + request: WebResourceRequest? + ): WebResourceResponse? { + request?.requestHeaders?.set("Access-Control-Allow-Origin", "*") + return super.shouldInterceptRequest(view, request) } } \ No newline at end of file