问题描述
我的 webview 应用程序遇到问题。我有一个 Web 应用程序,它使用带有按钮插件的 JQuery 数据表(如下图所示)
我在我的 webview 应用程序中使用这个 web 应用程序。当我单击“PDF”按钮时。它应该下载一个包含表中数据的 pdf 文件。但实际情况是它正在下载“.bin”文件而不是“pdf”文件。
这些是在我的 AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
这是我在 MainActivity.java
public class MainActivity extends AppCompatActivity {
WebView web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = findViewById(R.id.webView);
WebSettings webSettings = web.getSettings();
webSettings.setJavaScriptEnabled(true);
web.setWebViewClient(new Callback());
web.loadUrl("http://webview.web-app.cf/");
web.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url,String userAgent,String contentdisposition,String mimetype,long contentLength) {
try {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http://webview.web-app.cf/"));
request.setMimeType(mimetype);
String cookies = CookieManager.getInstance().getCookie("http://webview.web-app.cf/");
request.addRequestHeader("cookie",cookies);
request.addRequestHeader("User-agent",userAgent);
request.setDescription("Downloading File . . .");
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,URLUtil.guessFileName("http://webview.web-app.cf/",null,null));
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
Toast.makeText(getApplicationContext(),"Downloading File",Toast.LENGTH_LONG).show();
}catch (Exception e){
if (ContextCompat.checkSelfPermission(MainActivity.this,android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(getBaseContext(),"To download attachments,Please tap allow when prompted",Toast.LENGTH_LONG).show();
ActivityCompat.requestPermissions(MainActivity.this,new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},110);
} else {
Toast.makeText(getBaseContext(),110);
}
}
}
}
});
}
private class Callback extends WebViewClient {
@Override
public boolean shouldOverrideKeyEvent(WebView view,KeyEvent event){
return false;
}
}
}
我对 Java 不是很熟悉,所以我不确定我的代码中缺少什么来实现我的目标。
预先感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)