Adjust webview context
This commit is contained in:
parent
888c8ddbc4
commit
ecd51d491c
|
|
@ -12,6 +12,7 @@ public class MainActivity extends Activity {
|
|||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
new Thread(() -> {
|
||||
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String, String> 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());
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
f913d30766882408e79b7316771dd011
|
||||
b29b008f7a563d1ee0417ee8bc66127b
|
||||
|
|
|
|||
Loading…
Reference in New Issue