Как встроить HTML-код в приложение для Android? - PullRequest
5 голосов
/ 03 августа 2011

Я пишу приложение, для которого мне нужно встроить HTML-объект в приложение Android, я следовал приведенному здесь учебнику: http://mobile.tutsplus.com/tutorials/android/android-sdk-embed-a-webview-with-the-webkit-engine/ и соответствующим образом изменил код, следующий код, но я получаю белый экран ...

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        WebView engine = (WebView) findViewById(R.id.web_engine);

    engine.getSettings().setJavaScriptEnabled(true);
    engine.getSettings().setPluginsEnabled(true); 
    engine.getSettings().setAppCacheEnabled(false); 
    engine.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

        String data = "<html>" +
                "<body>" +
                "bb"+
                "<object width=\"450\" height=\"300\" align=\"middle\"><param name=\"movie\" value=\"http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1\" /><param name=\"wmode\" value=\"transparent\"><embed src=\"http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1\" width=\"450\" height=\"300\" align=\"middle\" type=\"application/x-shockwave-flash\" wmode=\"transparent\"  FlashVars=\"gig_lt=1312323434023&gig_pt=1312325057958&gig_g=2\"/> <param name=\"FlashVars\" value=\"gig_lt=1312323434023&gig_pt=1312325057958&gig_g=2\" /></object>"+
                "gg"+
                "</body>" +
                "</html>";

        engine.loadData(data, "text/html", "UTF-8");
    }
}

Объект, который я хочу внедрить:

<object width="450" height="300" align="middle"><param name="movie" value="http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1" /><param name="wmode" value="transparent"><embed src="http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1" width="450" height="300" align="middle" type="application/x-shockwave-flash" wmode="transparent"  FlashVars="gig_lt=1312323434023&gig_pt=1312326303531&gig_g=2"/> <param name="FlashVars" value="gig_lt=1312323434023&gig_pt=1312326303531&gig_g=2" /></object>

Ответы [ 5 ]

11 голосов
/ 03 августа 2011

Поместите файл в каталог / assets, вы можете получить к нему доступ через файл: /// android_asset / directory.

Вместо того, чтобы помещать html в код, папка assets - это место, где вы можете поместить статические данные.такие файлы, как HTML и связанные с ним CSS, изображения и файлы JavaScript и т. д. Затем вы можете использовать WebView.loadUrl () .Преимущество этого заключается в том, что в коде не нужно использовать Java String и громоздкое редактирование.Вы сможете создать файл (ы) отдельно, в своем любимом редакторе веб-проектов, а затем скопировать и вставить их.Если вам нужно отредактировать файл во время выполнения, вы все равно можете загрузить файл из каталога assets и при этом не беспокоиться о выходах Java String и обременительном редактировании.Затем примените изменения и передайте WebView.loadData () .

. Чтобы отладить эту проблему, внедрите WebChromeClient.onLoadResource и ознакомьтесь с учебным пособием по консольным сообщениям .

Не забудьте использовать PackageManager.getPackageInfo () , чтобы проверить, доступна ли флэш-память.Если это не так, вы можете дать пользователю возможность скачать его с маркета .

1 голос
/ 03 августа 2011

Android не имеет официального средства просмотра Flash, поэтому он не знает, что делать со встроенным SWF-файлом.

Если вы вставите другой (видимый) HTML-код в свой код, вы сможете увидеть его впредставление.

Если вы попытаетесь получить доступ к своему SWF-файлу через веб-браузер, вы должны получить значок сломанного / отсутствующего плагина.

0 голосов
/ 21 августа 2014

Встраивать HTML-файлы очень просто, а загрузить их в WebView еще проще.Здесь:

Создайте свой HTML-файл и поместите его в файл ресурсов вашего проекта.в моем случае: "proj / assets / license.html"

    WebView w = new WebView(this);
    // Load the asset file by URL. Note the 3 slashes "file:///".
    w.loadUrl("file:///android_asset/license.html");

Вот и все.

0 голосов
/ 03 августа 2011

Вам необходимо включить плагины в вашем веб-просмотре:

engine.getSettings().setPluginsEnabled(true);
0 голосов
/ 03 августа 2011

Объявили ли вы разрешение на Интернет в манифесте Android?Чтобы получить доступ к SWF-файлу на удаленном сервере, он вам понадобится.

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