在Android的WebChromeClient中打开静态html页面时,url中会添加更多字符
我收到错误,因为文件://#/android_asset/webpage.htm处的网页无法加载为:是一个目录。在模拟器中 但是我的代码是在Android的WebChromeClient中打开静态html页面时,url中会添加更多字符,android,android-webview,Android,Android Webview,我收到错误,因为文件://#/android_asset/webpage.htm处的网页无法加载为:是一个目录。在模拟器中 但是我的代码是webView.loadUrl(“file:///android_asset/webpage.htm"); 首先,页面呈现完美,但呈现后再次刷新页面,不会加载,并将使网页不可用。 如果我们可以仔细查看android emulator给出的url,在android_资产之前还有两个额外的字符 下面是代码 public class Catalog extends
webView.loadUrl(“file:///android_asset/webpage.htm");代码>
首先,页面呈现完美,但呈现后再次刷新页面,不会加载,并将使网页不可用。
如果我们可以仔细查看android emulator给出的url,在android_资产之前还有两个额外的字符
下面是代码
public class Catalog extends Activity {
final Activity activity = this;
WebView webView;
ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);//used for rendering percentage of loading
setContentView(R.layout.catalog_layout);
try{
webView = (WebView) findViewById(R.id.browserwebview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgressBarVisibility(true);
activity.setProgress(progress * 100);
if(progress == 100){
activity.setTitle(R.string.app_name);
}
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
Toast.makeText(activity, "Oh no!"+ description, Toast.LENGTH_SHORT).show();
}
@Override
public void onLoadResource (WebView view, String url) {
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
return true;
}
});
webView.loadUrl("file:/android_asset/web/webpage.html");
}
catch (Exception e) {
e.printStackTrace();
}
ImageButton btnBack = (ImageButton)this.findViewById(R.id.buttonBackCatalog);
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(webView.canGoBack()){
webView.goBack();
}else{
Intent myIntent = new Intent(view.getContext(), FCFActivity.class);`
`startActivityForResult(myIntent, 0);
}
}
});
/*
* Actions for footer Buttons
*
*/
ImageButton buttonFooterMainHome = (ImageButton)findViewById(R.id.footerMainBtnHome);
buttonFooterMainHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), FCFActivity.class);
startActivityForResult(myIntent, 0);
}
});
LinearLayout homeLinearLayout=(LinearLayout)this.findViewById(R.id.footerLayoutHome);
homeLinearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), FCFActivity.class);
startActivityForResult(myIntent, 0);
}
});
}
@Override
public void onConfigurationChanged(final Configuration newConfig)
{
// Ignore orientation change to keep activity from restarting
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
}
}
}
期待您的回复
谢谢。哦,这让我头疼,他们改变了其中一个安卓版本的工作方式,但记不清是哪个版本了。以下是我的工作:
webView.loadUrl("file:/android_asset/webpage.html");
如果您的静态网页有图像,请使用此链接:
file:///android_asset/yourimage.png
编辑并尝试以下操作:,清理项目并检查资产文件是否位于路径。是否已将html放置在资产文件夹中尝试了您的方法,但网页仍然不可用。谢谢。@Mukunda那么你需要提供更多的信息,你一定是做错了什么。我已经用代码更新了,有什么帮助吗?为什么我得不到这个网页。谢谢。你是对的,一些javascript向url添加了额外的字符,当我删除文件时,它工作正常。谢谢。让我直说吧。您可以访问网页,但当进度条加载完毕后,您会收到错误消息吗?尝试删除它,看看它是否相关?尝试使用一个非常简单的html文件?
- `You are using only htm use html`
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new myWebClient());
webview.loadurl();
and
public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
}