我遇到了一些问题。如果我直接在浏览器中打开SWF文件,它可以正常工作。但是,如果我尝试使用loadUrl加载SWF文件,则会显示空白,并且不会加载任何内容。
搞定了,您需要启用插件。
webview.getSettings().setPluginsEnabled(true);
Niky,您可以在这里找到代码示例。
我已经使用这个示例测试了代码,并确认它能够正常工作。在这个示例中,qualibus.swf文件包含在应用程序的assets中。请在实际设备上进行测试,因为在模拟器上它会显示一个空白页面(可能是由于模拟器上没有安装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>
WebView.getSettings().setPluginsEnabled();
方法已经自 API level 9 起被废弃,且在 API level 18 中被移除。您可以使用新的方法
WebView.getSettings().setPluginState(WebSettings.PluginState.ON);
,它在 API level 8 中被添加,但在 API level 18 中被废弃。根据 WebSettings 文档 API level 超过 18 将不再支持插件;我猜测这是因为主要支持的插件是 Flash,而 Adobe 不再为移动设备开发 Flash。
引用自来源
因此,您现在可以在 API level 18 之前使用它,并处理与更高的 API 的兼容性(可悲)。