saveWebArchive() 不适用于 Android 4.0.3

Posted

技术标签:

【中文标题】saveWebArchive() 不适用于 Android 4.0.3【英文标题】:saveWebArchive() not working an Android 4.0.3 【发布时间】:2012-03-26 13:31:46 【问题描述】:

我正在尝试编写一个非常简单的代码来将网页保存到 android 4.0.3 ICS 中的 Web 存档中的磁盘。我的代码是:

final WebView myWebView = (WebView) findViewById(R.id.myWebView);
myWebView.setWebViewClient(new myWebClient());
myWebView.getSettings().setjavascriptEnabled(true);
myWebView.loadUrl("https://academics.vit.ac.in/student/stud_login.asp");

Button forward = (Button) findViewById(R.id.bForward);
Button back = (Button) findViewById(R.id.bBack);
Button update = (Button) findViewById(R.id.bUpdate);

forward.setOnClickListener(new View.OnClickListener() 
    @Override
    public void onClick(View v) 
        if (myWebView.canGoForward())
            myWebView.goForward();
    
);

back.setOnClickListener(new View.OnClickListener() 
    @Override
    public void onClick(View v) 
        if (myWebView.canGoBack())
            myWebView.goBack();
        
);

update.setOnClickListener(new View.OnClickListener() 
    @Override
    public void onClick(View v) 
                    myWebView.saveWebArchive("theArch");                
    
);

问题是,webview 运行良好,但每当我单击更新按钮时,我得到的是(来自 LogCat):

03-26 18:41:38.797: D/webcoreglue(755): saveWebArchive: 初始化 xml 写入器失败。

什么都没有发生.....

请任何人帮助我解决这个问题;因为这是其他非常重要的东西的组成部分......

提前致谢!!!!

【问题讨论】:

【参考方案1】:

尝试提供完全限定的路径,而不是 "theArch"。例如,使用getFilesDir()File 构造函数提供内部存储的路径。

【讨论】:

像魅力一样工作!我使用了 myWebView.saveWebArchive(getFilesDir().getAbsolutePath() + File.separator + "myArch");它完全符合我的要求!非常感谢!!! 感谢您的回答@CommonsWare,但saveWebArchive 是否有任何替代选项,因为我也想在下面使用Api 11

以上是关于saveWebArchive() 不适用于 Android 4.0.3的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 路由和 .htaccess 文件不适用于 1and1 托管

如何在flutter mobile中保存网站以供离线使用

$SIGINT='IGNORE' 不适用于 Net::OpenSSH

EditText 填充属性不适用于 API 21 和 22

媒体查询不适用于移动设备 - 电话

PyMongo 聚合不适用于 $max 运算符