我(像许多其他人一样)遵循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;
}
}
}
谢谢!
答案 0 :(得分:22)
您的互联网许可应该是“明显”的直接子女 - 不应该在“申请”之下。
e.g。
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage.name"
android:installLocation="auto"
android:versionCode="3210" android:versionName="1.1.0">
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:minSdkVersion="6" android:targetSdkVersion="10"/>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
<!-- activities go here -->
</application>
</manifest>
希望这会有所帮助 -serkan