将SWF加载到WebView中

时间:2010-06-08 00:40:25

标签: android flash webview

我遇到了这个问题。如果我直接在浏览器中访问SWF,它可以正常工作。如果我尝试在SWF文件上使用loadUrl,它将保持空白并且不加载任何内容。

3 个答案:

答案 0 :(得分:20)

想出来。你必须启用插件。

webview.getSettings().setPluginsEnabled(true);

答案 1 :(得分:4)

Niky,您有一个代码示例here

我已使用此示例测试此代码并确认其有效。在此示例中,qualibus.swf包含在应用程序的资产中。请在实际设备上进行测试,如在模拟器上显示空白页面(可能是模拟器上没有flash播放器)

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);
    }
}

main.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>

结果:

Application running and displaying swf in web view

答案 2 :(得分:2)

  

函数WebView.getSettings().setPluginsEnabled();方法具有   自API级别9以来已被弃用,并已在API级别18中删除。

     

您可以使用更新的功能   WebView.getSettings().setPluginState(WebSettings.PluginState.ON);   
已在API级别8中添加,并在API级别18中弃用。

     

根据WebSettings Documentation API将超过18级   不支持插件;我假设它是因为主插件   支持是闪存,adobe不再为移动设备开发。

引自source

所以,现在你可以使用它直到18,并处理与更高API的兼容性(遗憾地)