Привет, я разрабатываю приложение для Android с использованием реализации WebView
.
Я следил за официальным андроидом .
Я не получаю ошибок при создании моего проекта в eclipse, но при запуске приложения:
приложение перестало работать неожиданно
Привет, я разрабатываю приложение для Android с использованием реализации WebView
.
Я следил за официальным андроидом .
Я не получаю ошибок при создании моего проекта в eclipse, но при запуске приложения:
приложение перестало работать неожиданно
Ваш файл Java должен выглядеть следующим образом:
public class WebViewSampleActivity extends Activity {
WebView wb;
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wb=(WebView)findViewById(R.id.webView1);
wb.getSettings().setJavaScriptEnabled(true);
wb.getSettings().setLoadWithOverviewMode(true);
wb.getSettings().setUseWideViewPort(true);
wb.getSettings().setBuiltInZoomControls(true);
wb.getSettings().setPluginState(WebSettings.PluginState.ON);
wb.getSettings().setPluginsEnabled(true);
wb.setWebViewClient(new HelloWebViewClient());
wb.loadUrl("http://www.examplefoo.com");
}
}
Ваш xml файл должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_gravity="center">
<WebView
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center" />
</LinearLayout>
Используйте следующее в манифесте после <uses-sdk><uses-sdk/>
:
<uses-permission android:name="android.permission.INTERNET"/>
WebView используется для отображения веб-страниц в нашем приложении. Позвольте сделать WebView и загрузить любой веб-сайт
предоставить разрешение в AndroidManifest.XML
<uses-permission android:name="android.permission.INTERNET"/>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
MainActivity.Java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity
{
private WebView webview;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webview=(WebView)findViewById(R.id.webview);
//loads androidride homepage to webview
webview.loadUrl("https://www.androidride.com");
}
}
WebView - это представление, отображающее веб-страницы внутри вашего приложения. Вы также можете указать строку HTML и показать ее в приложении с помощью WebView.
Учебник с примером: http://www.viralandroid.com/2015/09/android-webview-tutorial-with-examples.html
файл activity_main.xml
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
Файл MainActivity.java
import android.webkit.WebView;
...
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.viralandroid.com");
Здесь вы идете:
LinearLayout root = new LinearLayout(this);
root.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
WebView wv = new WebView(this);
wv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://www.google.com");
root.addView(wv);
setContentView(root);
Поместите этот код в свой метод onCreate. И не забудьте установить разрешающий интернет в манифесте Android.
class WebViewClass extends WebViewClient {
final ProgressBar loadProgress;
final WebView wv;
WebViewClass(WebView webView, ProgressBar progressBar) {
this.wv = webView;
this.loadProgress = progressBar;
}
public void onPageFinished(WebView view, String url) {
wv.setVisibility(View.VISIBLE);
loadProgress.setVisibility(View.INVISIBLE);
view.clearCache(true);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
wv.loadData("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + "<center>" + getString(R.string.erroopsproblem) + ".</center>", "text/html", "UTF-8");
}
}
Теперь используйте этот класс в onCreate(), например
WebView wv = (WebView) findViewById(R.id.webview);
wv.setWebViewClient(new WebViewClient());
wv.getSettings().setLoadsImagesAutomatically(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.setScrollBarStyle(View.VISIBLE);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setSupportZoom(true);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.getSettings().setAllowContentAccess(true);
wv.loadUrl(Dest);
wv.setVisibility(View.INVISIBLE);
wv.setWebViewClient(new WebViewClass(wv, loadProgress));
XML файл
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myweb"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
Java файл
WebView web = (WebView) findViewById(R.id.myweb);
web.setWebViewClient(new WebViewClient());
web.getSettings().setLoadsImagesAutomatically(true);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setBuiltInZoomControls(true);
web.getSettings().setSupportZoom(true);
web.getSettings().setLoadWithOverviewMode(true);
web.getSettings().setUseWideViewPort(true);
web.getSettings().setAllowContentAccess(true);
web.loadUrl("https://www.technolifehacker.com");
web.setWebViewClient(new WebViewClient(){
В дополнение к ответу @ghost, если вы хотите, чтобы ваше веб-представление было полнофункциональным, как браузер, т.е. Вы могли идти вперед и назад, тогда вам необходимо переопределить метод onBackPressed для вашей деятельности, как показано ниже.
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
проверить этот пост в моем блоге с помощью веб-просмотра очень хорошо определено с кодом https://androidbulls.blogspot.com/2019/05/webview.html
Вы должны