소스 검색

fix(android): add Referer header for url redirect load

Roc Wu 4 년 전
부모
커밋
85d0c081b2
1개의 변경된 파일8개의 추가작업 그리고 1개의 파일을 삭제
  1. 8
    1
      android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java

+ 8
- 1
android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java 파일 보기

107
 public class RNCWebViewManager extends SimpleViewManager<WebView> {
107
 public class RNCWebViewManager extends SimpleViewManager<WebView> {
108
 
108
 
109
   public static String activeUrl = null;
109
   public static String activeUrl = null;
110
+  public static String refererUrl = null;
110
   public static final int COMMAND_GO_BACK = 1;
111
   public static final int COMMAND_GO_BACK = 1;
111
   public static final int COMMAND_GO_FORWARD = 2;
112
   public static final int COMMAND_GO_FORWARD = 2;
112
   public static final int COMMAND_RELOAD = 3;
113
   public static final int COMMAND_RELOAD = 3;
609
         if (args == null) {
610
         if (args == null) {
610
           throw new RuntimeException("Arguments for loading an url are null!");
611
           throw new RuntimeException("Arguments for loading an url are null!");
611
         }
612
         }
612
-        root.loadUrl(args.getString(0));
613
+        HashMap<String, String> headerMap = new HashMap<>();
614
+        if (refererUrl != null) {
615
+          headerMap.put("Referer", refererUrl);
616
+        }
617
+
618
+        root.loadUrl(args.getString(0), headerMap);
613
         break;
619
         break;
614
       case COMMAND_FOCUS:
620
       case COMMAND_FOCUS:
615
         root.requestFocus();
621
         root.requestFocus();
742
 
748
 
743
     @Override
749
     @Override
744
     public boolean shouldOverrideUrlLoading(WebView view, String url) {
750
     public boolean shouldOverrideUrlLoading(WebView view, String url) {
751
+      refererUrl = activeUrl;
745
       activeUrl = url;
752
       activeUrl = url;
746
       dispatchEvent(
753
       dispatchEvent(
747
         view,
754
         view,