2010-06-08 84 views
19

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

+1

请给我SWF负载的代码放到网页流量 – 2011-06-30 07:54:34

+1

任何人给我整个代码? – 2011-07-01 11:35:29

回答

21

想通了。你必须启用插件。

webview.getSettings().setPluginsEnabled(true); 
+1

不再起作用 – 2016-02-18 14:50:49

+0

“因为API 9级的方法已经过时,并在API级别18,除去”,笔记frmo我的回答如下。 – Darpan 2016-07-05 13:36:08

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

+0

不好意思,我正在应用了相同的程序,但http://stackoverflow.com/questions/9308712/how-to-run-the-swf-file-in-android-emulator 得到这个错误 – VENKI 2012-02-16 11:11:19

+4

我找不到WV。的getSettings()setPluginsEnabled(真)。方法...我只能找到webView.getSettings()。setPluginState(PluginState.ON);方法...请帮助我 – 2013-09-14 05:47:54

2

功能WebView.getSettings().setPluginsEnabled();方法 以来API级9过时,在API级别除去18.

可以使用将其在API级别8加入并在API级别已被废弃的较新的功能 WebView.getSettings().setPluginState(WebSettings.PluginState.ON);
18.

据超出18将 不支持插件的WebSettings文档API级别;我假设这是因为支持 的主要插件是Flash,而Adobe不再为移动设备开发该插件。

source引用

所以,现在你可以使用它,直到18,和处理具有较高的API(黯然)的兼容性