java - 使用 webview 下载 android instagram 视频
问题描述
我正在尝试使用 webview 下载 Instagram 视频,但它甚至没有检测到我要下载的视频。我尝试使用该代码下载 facebook 视频,它工作得很好,但是对于 instagram,当我单击视频时,我希望它会在单独的页面上打开,但它没有,也无法下载。
下面是我试过的代码:
public void downloader()
{
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
/* if (swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(false);
}*/
webView.loadUrl("javascript:(function() { "
+ "var el = document.querySelectorAll('div[data-sigil]');"
+ "for(var i=0;i<el.length; i++)"
+ "{"
+ "var sigil = el[i].dataset.sigil;"
+ "if(sigil.indexOf('inlineVideo') > -1){"
+ "delete el[i].dataset.sigil;"
+ "var jsonData = JSON.parse(el[i].dataset.store);"
+ "el[i].setAttribute('onClick', 'IGDownloader.processVideod(\"'+jsonData['src']+'\");');"
+ "}" + "}" + "})()");
}
@Override
public void onLoadResource(WebView view, String url) {
webView.loadUrl("javascript:(function prepareVideo() { "
+ "var el = document.querySelectorAll('div[data-sigil]');"
+ "for(var i=0;i<el.length; i++)"
+ "{"
+ "var sigil = el[i].dataset.sigil;"
+ "if(sigil.indexOf('inlineVideo') > -1){"
+ "delete el[i].dataset.sigil;"
+ "console.log(i);"
+ "var jsonData = JSON.parse(el[i].dataset.store);"
+ "el[i].setAttribute('onClick', 'IGDownloader.processVideod(\"'+jsonData['src']+'\",\"'+jsonData['videoID']+'\");');"
+ "}" + "}" + "})()");
webView.loadUrl("javascript:( window.onload=prepareVideo;"
+ ")()");
}
});
}
解决方案
推荐阅读
- batch-file - 在批处理脚本的 for 循环中更改目录
- android - 如何读取 JSON 数组?
- java - Java:删除字符串字段以外的所有空格
- algorithm - 是否有任何不基于模式的数据压缩算法?
- jquery - 一定时间后用 $(this) 元素做某事
- php - XPath:父母的下一个孩子
- javascript - 将 webpack 开发服务器与 nginx 一起使用
- windows - Windows 性能分析器缺少 ImageId 事件
- java - Kotlin:参数化类型的构造函数引用给出了编译错误
- c# - C# linq 是否有类似于 SummaryStatistics 的东西?