react-native-webview: Referer header is not passing to request

I have private vimeo video. It restricted by domain-level privacy

It works if request contains Referer header, but seems like react-native-webview not pass it

Screenshot 2019-03-28 at 12 48 32

So I receive error on trying to play protected video

Screenshot 2019-03-28 at 10 51 30

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 5
  • Comments: 38 (2 by maintainers)

Most upvoted comments

hi @indapublic , @sibelius . Could we implement by this way:

@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    final String url = request.getUrl().toString();
    PREVIOUS_URL = view.getOriginalUrl()();
    return this.shouldOverrideUrlLoading(view, url);
}
case COMMAND_LOAD_URL:
    if (args == null) {
        throw new RuntimeException("Arguments for loading an url are null!");
    }
    HashMap<String, String> headerMap = new HashMap<>();
    headerMap.put("referer", PREVIOUS_URL);
    root.loadUrl(args.getString(0), headerMap);
    break;

edit RNCWebViewManager.java like this

@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.contains(“https://wx.tenpay.com”)){ Map<String,String> map=new HashMap<String, String>(); map.put(“Referer”, “https://www.reactnative.com”); view.loadUrl(url,map); return true; } dispatchEvent( view, new TopShouldStartLoadWithRequestEvent( view.getId(), createWebViewEvent(view, url))); return true; }