WebView Android - PullRequest
       12

WebView Android

0 голосов
/ 11 сентября 2011

Я пытаюсь сделать простой WebView в своей деятельности и продолжаю получать страницу "веб-страница недоступна" в моем браузере Android на виртуальном устройстве, а также на реальном устройстве.

Я посмотрелхотя некоторые образцы онлайн, а также пример в моей книге, но я считаю, что что-то все еще не хватает.Любая помощь будет оценена.Код ниже.wv ссылается на объект webview в файле main.xml.

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        WebView wv = (WebView) findViewById(R.id.webView1);
        WebSettings webSettings = wv.getSettings();
        wv.getSettings().setJavaScriptEnabled(true);
        webSettings.setBuiltInZoomControls(true);
        wv.loadUrl("http://www.amazon.com");
    }
}

Ответы [ 2 ]

3 голосов
/ 06 января 2015

Для андроида webView вам нужно помнить 4 вещи, чтобы он работал идеально.

  1. Дайте необходимое разрешение для доступа в интернет на вашем андроиде Manifest.xml
  2. Импортируйте необходимые библиотеки, такие как webclient и webchromeclient в ваш YourActivity.java
  3. Включить javascript , если вы собираетесь показать веб-страницу, которая нуждается в поддержке java.
  4. Скопируйте и вставьте все файлы изображений, которые вы используете в веб-представлении, во все папки " drawable " в папке " res " вашего проекта.

Я дал вам полный код из манифеста в Activity.java. Работает отлично. Всего наилучшего ..!

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourappname"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="21" />

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permissions.NETWORK_ACCESS" />
<uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/yourapplogo"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <WebView
        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

MainActivity.java:

package com.example.yourappname;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.ValueCallback;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebChromeClient;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

WebView web;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    web = (WebView) findViewById(R.id.webView1);
    web = new WebView(this);  
    web.getSettings().setJavaScriptEnabled(true);
    web.loadUrl("http://www.yourwebsite.com");
    web.setWebViewClient(new myWebClient());
    web.setWebChromeClient(new WebChromeClient());
    setContentView(web);
}



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;

    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);


    }
}

//flip screen not loading again
@Override
public void onConfigurationChanged(Configuration newConfig){        
  super.onConfigurationChanged(newConfig);
}



@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.ACTION_DOWN){
        switch(keyCode)
        {
        case KeyEvent.KEYCODE_BACK:
            if(web.canGoBack()){
                web.goBack();
             }
            else
            {
                backButtonHandler();
            }
            return true;
        }

     }
     return super.onKeyDown(keyCode, event);
 }
public void backButtonHandler() {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                MainActivity.this);


        // Setting Dialog Title
       // Setting Dialog Message

        alertDialog.setTitle("Your App Name");

  // I've included a simple dialog icon in my project named "dialog_icon", which's image file is copied and pasted in all "drawable" folders of "res" folders of the project. You can include any dialog image of your wish and rename it to dialog_icon.

        alertDialog.setIcon(R.drawable.dialog_icon);
        alertDialog.setMessage("Exit Now?");

         // Setting Icon to Dialog
        // Setting Positive "Yes" Button

        alertDialog.setPositiveButton("Exit",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        finish();
                    }
        });

    // Setting Negative "NO" Button

        alertDialog.setNegativeButton("No",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // Write your code here to invoke NO event
                        dialog.cancel();
                    }
                });
    // Showing Alert Message
        alertDialog.show();
}

}
0 голосов
/ 09 ноября 2013

добавьте разрешения ИНТЕРНЕТА в manifest.xml ...

Вы также можете просмотреть мое приложение с помощью веб-просмотра .... http://slideme.org/application/surfen-mini

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...