我正在尝试使用ShouldOverrIDeUrlLoading方法访问URL.由于某些原因,当我尝试访问HTML文件中存在的url时,出现网页不可用错误.以前我可以访问该url,因为我将HTML文件存储在原始文件夹中,但是我需要将其移至资产中文件夹,因为代码看起来更干净.这是我的代码,谁能让我知道如何解决这个问题.
webvIEw.setWebChromeClIEnt(new WebChromeClIEnt());webvIEw.setWebVIEwClIEnt(new WebVIEwClIEnt());webvIEw.loadUrl("file:///androID_asset/myfile/file.HTML");webvIEw.setVerticalScrollbarEnabled(false);webvIEw.setWebVIEwClIEnt(new WebVIEwClIEnt(){ public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) { if (url.equalsIgnoreCase("some text")){ setDialog("some fancy text"); }
解决方法:
尝试先获取文件的真实路径,然后按以下方式尝试:
String YourURI="/androID_asset/myfile/file.HTML";YourURI = new file(getRealPathFromURI(YourURI));//Got the Real Path Of the fileprivate String getRealPathFromURI(Uri contentURI) { Cursor cursor = getContentResolver().query(contentURI, null, null, null, null); cursor.movetoFirst(); int IDx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); return cursor.getString(IDx); }webvIEw.setWebChromeClIEnt(new WebChromeClIEnt());webvIEw.setWebVIEwClIEnt(new WebVIEwClIEnt());webvIEw.loadUrl(YourURI); //**Used the Real Path**webvIEw.setVerticalScrollbarEnabled(false);webvIEw.setWebVIEwClIEnt(new WebVIEwClIEnt(){ public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) { if (url.equalsIgnoreCase("some text")){ setDialog("some fancy text"); }}
如果文件在SDCARD中:
webvIEw.setWebChromeClIEnt(new WebChromeClIEnt());webvIEw.setWebVIEwClIEnt(new WebVIEwClIEnt());if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ Log.d(TAG, "No SDCARD");} else { webvIEw.loadUrl("file://"+Environment.getExternalStorageDirectory() +"/androID_asset/myfile/file.HTML");}webvIEw.setVerticalScrollbarEnabled(false);webvIEw.setWebVIEwClIEnt(new WebVIEwClIEnt(){ public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) { if (url.equalsIgnoreCase("some text")){ setDialog("some fancy text"); }}
最终编辑:-此代码非常适合资产文件夹
public class MyActivity extends Activity { @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.webvIEw); WebVIEw webvIEw; webvIEw = (WebVIEw) findVIEwByID(R.ID.webVIEw1); webvIEw.loadUrl("file:///androID_asset/myfile/file.HTML"); } }
总结 以上是内存溢出为你收集整理的无法访问Android中Webview的html文件中存在的url全部内容,希望文章能够帮你解决无法访问Android中Webview的html文件中存在的url所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)