Загрузите SWF в WebView

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


person Joren    schedule 08.06.2010    source источник
comment
пожалуйста, пришлите мне код загрузки swf в веб-просмотр   -  person Nikunj Patel    schedule 30.06.2011


Ответы (3)


Догадаться. Вы должны включить плагины.

webview.getSettings().setPluginsEnabled(true);
person Joren    schedule 08.06.2010
comment
метод устарел, начиная с уровня API 9, и был удален на уровне API 18, обратите внимание на мой ответ ниже. - person Darpan; 05.07.2016

Ники, у вас есть пример кода здесь.

Я использовал этот пример, чтобы проверить этот код и убедиться, что он работает. В этом примере qualibus.swf содержится в ресурсах приложения. Пожалуйста, проверьте это на реальном устройстве, так как на эмуляторе отображается пустая страница (вероятно, флеш-плеер отсутствует на эмуляторе)

Test3Activity.java:

package com.blabla.test3;

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

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

        String url ="file:///android_asset/qualibus.swf";

        WebView wv=(WebView) findViewById(R.id.webView1);
        wv.getSettings().setPluginsEnabled(true);
        wv.loadUrl(url);
    }
}

основной.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<WebView android:id="@+id/webView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent">
</WebView>
</LinearLayout>

Результат:

Приложение работает и отображает SWF в веб-представлении

person ZoltanF    schedule 08.07.2011
comment
извините, я применил ту же процедуру, но stackoverflow.com/questions/9308712/ получил эту ошибку - person VENKI; 16.02.2012
comment
я не могу найти wv.getSettings().setPluginsEnabled(true); метод... я могу найти только webView.getSettings().setPluginState(PluginState.ON); метод ... пожалуйста, помогите мне - person Pradip Bhatt; 14.09.2013

Метод функции WebView.getSettings().setPluginsEnabled(); устарел, начиная с уровня API 9, и был удален в уровне API 18.

Вы можете использовать более новую функцию WebView.getSettings().setPluginState(WebSettings.PluginState.ON);
которая была добавлена ​​на уровне API 8 и устарела на уровне API 18.

Согласно API-интерфейсу WebSettings, уровни выше 18 не будут поддерживать плагины; Я предполагаю, что это потому, что основным плагином для поддержки был flash, который Adobe больше не разрабатывает для мобильных устройств.

Цитата из источника

Итак, на данный момент вы можете использовать его до 18 лет и поддерживать совместимость с более высокими API (к сожалению)

person Darpan    schedule 12.01.2016