6
我(跟很多其他人一样)遵循webview教程,但我无法加载页面。一切都以“网页不可用”的形式出现WebView - 网页不可用
我确保模拟器确实能够访问互联网,只是为了排除模拟器的问题,我试图在手机上安装它,导致了相同的行为。
我读过最大的问题是人们没有把INTERNET
权限放在我的清单文件中,我曾尝试将清单中不同元素的子元素放在一起无济于事。有谁知道我为什么不能加载它?
这里是我的代码:
Manifest:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AndroidTestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<uses-permission android:name="android.permission.INTERNET" />
</activity>
</application>
</manifest>
AndroidTestActivity
public class AndroidTestActivity extends Activity {
WebView webview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://www.google.com/m");
Intent intent = getIntent();
// To get the action of the intent use
System.out.println(intent.getAction());
// We current open a hard-coded URL
try {
webview.setWebViewClient(new AndroidTestClient());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
private class AndroidTestClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
谢谢!
是的,就是这样。我很确定我试图把它放到任何地方但是在那里:p谢谢! – Saggio
对于其他可能偶然发现的问题:我遇到了同样的问题,但是这是我在一台机器上建立并转移到另一台机器上的项目。出于某种原因,即使我复制了AndroidManifest.xml并且整个项目运行良好,但它不会在Web视图中加载Web内容。我收到了问题中提到的同样的错误,尽管我的使用权在正确的地方,即使我重建并重新安装了他的应用程序无数次。最后,我对xml进行了更改,以便我可以重新保存该文件并重新构建。然后它工作。非常烦人。 – raddevus