将SWF加载到WebView中

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

弄清楚了。 你必须启用插件。

webview.getSettings().setPluginsEnabled(true); 

Niky,你有一个代码示例。

我已经使用这个例子来testing这个代码,并确认它的工作原理。 在这个例子中,qualibus.swf包含在应用程序的资源中。 请在实际的设备上testing,如在模拟器上显示一个空白页面(可能是模拟器上没有flash player)

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> 

结果:

应用程序在web视图中运行并显示swf

函数WebView.getSettings().setPluginsEnabled(); 方法从API级别9开始已被弃用,并在API级别18中被删除。

你可以使用新的函数WebView.getSettings().setPluginState(WebSettings.PluginState.ON);
它在API级别8中添加,并在API级别18中弃用。

根据WebSettings文档API超过18的水平将不支持插件; 我假设这是因为支持的主要插件是Flash,哪个Adobe不再为移动开发。

从源引用

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