将 SWF 加载到 WebView
Posted
技术标签:
【中文标题】将 SWF 加载到 WebView【英文标题】:Load an SWF into a WebView 【发布时间】:2011-02-28 23:06:39 【问题描述】:我遇到了这个问题。如果我直接在浏览器中访问 SWF,它可以正常工作。如果我尝试在 SWF 文件上使用 loadUrl,它会保持空白并且不加载任何内容。
【问题讨论】:
请把 swf 加载到 webview 的代码发给我 【参考方案1】:想通了。您必须启用插件。
webview.getSettings().setPluginsEnabled(true);
【讨论】:
“方法自 API 级别 9 起已被弃用,并在 API 级别 18 中被删除”,请注意下面我的回答。【参考方案2】: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_
android:layout_
>
<WebView android:id="@+id/webView1"
android:layout_
android:layout_>
</WebView>
</LinearLayout>
结果:
【讨论】:
对不起,我已经应用了相同的程序,但 ***.com/questions/9308712/… 收到此错误 我找不到 wv.getSettings().setPluginsEnabled(true);方法...我只能找到 webView.getSettings().setPluginState(PluginState.ON);方法...请帮助我【参考方案3】:函数
WebView.getSettings().setPluginsEnabled();
方法有 自 API 级别 9 起已弃用,并在 API 级别 18 中删除。您可以使用较新的功能
WebView.getSettings().setPluginState(WebSettings.PluginState.ON);
在 API 级别 8 中添加,在 API 级别 18 中已弃用。根据 WebSettings 文档 API 级别超过 18 级将 不支持插件;我假设这是因为主要插件 支持的是 flash,adobe 不再为移动设备开发。
引自source
所以,现在你可以使用它直到 18 岁,并处理与更高 API 的兼容性(遗憾)
【讨论】:
以上是关于将 SWF 加载到 WebView的主要内容,如果未能解决你的问题,请参考以下文章
将 AS2 SWF 加载到 AS3 SWF 中并在 URL 中传递变量
如何使用 php readfile 将 swf 加载到另一个 swf 并保留 url 参数?