将SWF加载到WebView中

19

我遇到了一些问题。如果我直接在浏览器中打开SWF文件,它可以正常工作。但是,如果我尝试使用loadUrl加载SWF文件,则会显示空白,并且不会加载任何内容。


1
请发送将SWF加载到WebView的代码。 - Nikunj Patel
3个回答

20

搞定了,您需要启用插件。

webview.getSettings().setPluginsEnabled(true);

该方法自API 9级别以来已被弃用,并在API 18级别中被移除。 - Darpan

4

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>

结果:

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


抱歉,我已经应用了相同的过程,但是在https://dev59.com/WGDVa4cB1Zd3GeqPd3-B中遇到了这个错误。 - VENKI
4
我无法找到wv.getSettings().setPluginsEnabled(true);方法,但我只能找到webView.getSettings().setPluginState(PluginState.ON);方法。请帮我解决这个问题。 - Pradip Bhatt

2

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 的兼容性(可悲)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接