WebView parse support header

pull/137/head
FongMi 4 years ago
parent 7395218de5
commit 064813d5c8
  1. 6
      app/src/main/java/com/fongmi/android/tv/bean/Parse.java
  2. 7
      app/src/main/java/com/fongmi/android/tv/player/ParseTask.java
  3. 17
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java

@ -46,9 +46,9 @@ public class Parse {
public static Parse get(Integer type, String url, JsonElement header) {
Parse parse = new Parse();
parse.setHeader(header);
parse.setType(type);
parse.setUrl(url);
parse.getExt().setHeader(header);
return parse;
}
@ -92,6 +92,10 @@ public class Parse {
this.activated = item.equals(this);
}
private void setHeader(JsonElement header) {
getExt().setHeader(header);
}
public Map<String, String> getHeaders() {
return Json.toMap(getExt().getHeader());
}

@ -48,11 +48,10 @@ public class ParseTask {
}
private void setParse(Result result, boolean useParse) {
String url = result.getPlayUrl();
if (useParse) parse = ApiConfig.get().getParse();
else if (url.startsWith("json:")) parse = Parse.get(1, url.substring(5));
else if (url.startsWith("parse:")) parse = ApiConfig.get().getParse(url.substring(6));
if (parse == null) parse = Parse.get(0, url, result.getHeader());
else if (result.getPlayUrl().startsWith("json:")) parse = Parse.get(1, result.getPlayUrl().substring(5));
else if (result.getPlayUrl().startsWith("parse:")) parse = ApiConfig.get().getParse(result.getPlayUrl().substring(6));
if (parse == null) parse = Parse.get(0, result.getPlayUrl(), result.getHeader());
}
private void doInBackground(String webUrl, String flag) {

@ -55,9 +55,19 @@ public class CustomWebView extends WebView {
setWebViewClient(webViewClient());
}
private void setUserAgent(Map<String, String> headers) {
for (String key : headers.keySet()) {
if (key.equalsIgnoreCase("user-agent")) {
getSettings().setUserAgentString(headers.get(key));
break;
}
}
}
public void start(String url, Map<String, String> headers, ParseTask.Callback callback) {
this.callback = callback;
loadUrl(url, headers);
setUserAgent(headers);
loadUrl(url);
retry = 0;
}
@ -80,11 +90,6 @@ public class CustomWebView extends WebView {
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
};
}

Loading…
Cancel
Save