我正在尝试使用以下URL调用webview中的loadUrl方法
http://stage.realtylog.net/iPhone/functions.php?username=xxx&ID=xxx&act=readFileAndPrint
当调用这个网址,它会从服务器提供一个图像。我需要显示在一个网页视图的图像。
它可以很好的处理普通的网址,但是不能处理上面带参数的网址。
它会给我一个错误,例如:
函数名必须是/var/www/stage/ www.example.com中的字符串realtylog.net/iPhone/functions.php
我试图URLEncode上述网址,但它仍然不工作。任何形式的帮助将不胜感激。
package com.hussain.webview2;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.SslErrorHandler;
import android.net.http.*;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewDemo2Activity extends Activity
{
final Activity activity = this;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
WebView webView = (WebView) findViewById(R.id.webview);
// webView.setWebViewClient(new WebViewClient());
// webView.addView(webView.getZoomControls());
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle("Done");
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
//webView.loadUrl("http://developer.android.com");
webView.loadUrl("http://stage.realtylog.net/iPhone/functions.php?username=xxxx&ID=xxxx&act=readFileAndPrint");
}
}
8条答案
按热度按时间3gtaxfhh1#
欢迎来到一个可怕的已知错误,谷歌不想修复,甚至解决。
http://code.google.com/p/android/issues/detail?id=17535
qxsslcnc2#
更改你的网址为:
ctzwtxfj3#
我搜索了很多来解决这个问题,但没有发现任何工作。虽然我只遇到了这个问题与android〈4. 0
我只是在第一次加载url时遇到这个问题。如果webview已经加载了其他一些url,它工作正常。
所以这是我的变通方案,虽然它真的很傻。
gpfsuwkq4#
此操作修复了以下问题:
t3irkdon5#
更改你的网址为:
js文件,如下所示:
6qfn3psc6#
Yoy可以使用NameValuePair和URLEncodedUtils的列表来创建url字符串。
替代选项如下所示...您也可以尝试...
ngynwnxp7#
我设法用一种不同的方式传递变量。
我的问题是,每当我切换到另一个应用程序,当来到webapp,webview不断重新加载。我猜这是因为我的
onCreate()
方法中的以下行:myWebView.loadUrl(url);
我有过在url中传递这些状态变量的想法,但正如你所知,这还不可能,我所做的是使用onSaveInstanceState(Bundle outState) {...}
保存一些变量的状态,然后使用onRestoreInstanceState(Bundle savedInstanceState){...}
恢复它们。在onCreate方法设置myWebView后,我做了以下操作:
所以,它发生的是,首先我加载页面,然后我传递变量时,页面完成加载.在javascript
loadVariables
函数看起来像这样:svmlkihl8#
正如Dino Fancellu指出的,这是一个坏错误,但我认为它只适用于Android项目中的资产本地文件。
令人难以置信的是,这个bug在2+版本(Froyo)中并不存在。
而且我的应用程序严重依赖于将url变量传递给/asset/ files。
我只传递了一个变量(?id=xx),但我是这样修复它的,并调整它以使用多个变量:
这可能有用:
PHP Fatal error: Function name must be a string