diff --git a/app/src/main/java/com/github/catvod/demo/MainActivity.java b/app/src/main/java/com/github/catvod/demo/MainActivity.java index 2a3de8c1..61a98f45 100644 --- a/app/src/main/java/com/github/catvod/demo/MainActivity.java +++ b/app/src/main/java/com/github/catvod/demo/MainActivity.java @@ -12,6 +12,7 @@ public class MainActivity extends Activity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread(() -> { + }).start(); } } \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/spider/Init.java b/app/src/main/java/com/github/catvod/spider/Init.java index f9f79ca6..1b8e47a7 100644 --- a/app/src/main/java/com/github/catvod/spider/Init.java +++ b/app/src/main/java/com/github/catvod/spider/Init.java @@ -1,6 +1,5 @@ package com.github.catvod.spider; -import android.app.Activity; import android.app.Application; import android.content.Context; import android.os.Handler; @@ -10,9 +9,6 @@ import android.widget.Toast; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.utils.Trans; -import java.lang.reflect.Field; -import java.util.Map; - public class Init { private final Handler handler; @@ -47,29 +43,4 @@ public class Init { public static void show(String msg) { get().handler.post(() -> Toast.makeText(context(), msg, Toast.LENGTH_SHORT).show()); } - - public static Activity getActivity() { - try { - Class activityThreadClass = Class.forName("android.app.ActivityThread"); - Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(null); - Field activitiesField = activityThreadClass.getDeclaredField("mActivities"); - activitiesField.setAccessible(true); - Map activities = (Map) activitiesField.get(activityThread); - for (Object activityRecord : activities.values()) { - Class activityRecordClass = activityRecord.getClass(); - Field pausedField = activityRecordClass.getDeclaredField("paused"); - pausedField.setAccessible(true); - if (!pausedField.getBoolean(activityRecord)) { - Field activityField = activityRecordClass.getDeclaredField("activity"); - activityField.setAccessible(true); - Activity activity = (Activity) activityField.get(activityRecord); - SpiderDebug.log(activity.getComponentName().getClassName()); - return activity; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } } diff --git a/app/src/main/java/com/github/catvod/spider/YiSo.java b/app/src/main/java/com/github/catvod/spider/YiSo.java index 09a8557c..907bde2b 100644 --- a/app/src/main/java/com/github/catvod/spider/YiSo.java +++ b/app/src/main/java/com/github/catvod/spider/YiSo.java @@ -19,11 +19,13 @@ import java.util.Objects; public class YiSo extends Spider { + private Context ctx; private Ali ali; @Override public void init(Context context, String extend) { ali = new Ali(extend); + ctx = context; } @Override @@ -40,7 +42,7 @@ public class YiSo extends Spider { public String searchContent(String key, boolean quick) { String url = "https://yiso.fun/api/search?name=" + URLEncoder.encode(key) + "&from=ali"; Map result = new HashMap<>(); - Misc.loadWebView(url, getWebViewClient(result)); + Misc.loadWebView(ctx, url, getWebViewClient(result)); while (!result.containsKey("json")) SystemClock.sleep(250); String json = JsonParser.parseString(Objects.requireNonNull(result.get("json"))).getAsJsonPrimitive().getAsString(); return Result.string(Item.objectFrom(json).getData().getList()); diff --git a/app/src/main/java/com/github/catvod/utils/Misc.java b/app/src/main/java/com/github/catvod/utils/Misc.java index 85c01f26..95c676a4 100644 --- a/app/src/main/java/com/github/catvod/utils/Misc.java +++ b/app/src/main/java/com/github/catvod/utils/Misc.java @@ -1,9 +1,10 @@ package com.github.catvod.utils; +import android.content.Context; import android.net.Uri; +import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; -import android.widget.RelativeLayout; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.spider.Init; @@ -138,20 +139,17 @@ public class Misc { } } - public static void loadWebView(String url) { - loadWebView(url, new WebViewClient()); - } - - public static void loadWebView(String url, WebViewClient client) { + public static void loadWebView(Context context, String url, WebViewClient client) { Init.run(() -> { - WebView webView = new WebView(Init.context()); + WebView webView = new WebView(context); + webView.getSettings().setUseWideViewPort(true); webView.getSettings().setDatabaseEnabled(true); webView.getSettings().setDomStorageEnabled(true); webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setLoadWithOverviewMode(true); + webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); + webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); webView.setWebViewClient(client); - RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(0, 0); - params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); - Init.getActivity().addContentView(webView, params); webView.loadUrl(url); }); } diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 193e2d8a..bee200c7 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index 5bfc54fa..568fb3e7 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -f913d30766882408e79b7316771dd011 +b29b008f7a563d1ee0417ee8bc66127b