在WebView中显示.swf文件

时间:2018-10-22 17:06:33

标签: java android swfobject

有人可以帮我将.swf文件显示到WebView中吗,我试图这样做,但是它显示的是白色窗口而不是WebView。我也试图显示一个简单的网站,它也显示一个空窗口。

Fragment.java

#monster.gd
func _on_field_of_detection_body_entered(body):#signal passed from Area2D

    if body.name == "Player": # When field of detection detect the player it load the fire.tscn scene.
        var fir = fire.instance()
        fir.set_global_position($fireposition.get_global_position())
        get_parent().add_child(fir)

在这里,我尝试将.swf文件加载到WebView中。 我以为问题出在此文件中,因此我尝试加载一个简单的网站,但也没有结果。

Fragment.xml

package com.app.clupascu.oavm;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class FirstFragment extends Fragment {


    @SuppressLint("SetJavaScriptEnabled")
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.fragment_first, container, false);

        String url ="file:///android_asset/map.swf";
        WebView mWebView=(WebView) v.findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
        mWebView.loadUrl(url);

        return inflater.inflate(R.layout.fragment_first, container, false);

    }
}

MainPage.java

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true" />

</RelativeLayout>

谢谢!

1 个答案:

答案 0 :(得分:1)

SWF是ShockWaveFlash文件。如果没有Flash插件的帮助,Web浏览器将无法运行/显示ShockWave Flash文件。

Android的Flash插件几年前已经停产。因此,您将无法使其成功在WebView中运行。

因此,您必须重新考虑应用程序设计,以及如何在没有该SWF文件的情况下实现自己的目标。

无论如何,使用将达到其end of life in 2 years (end of 2020)的技术来启动新应用不是一个好主意。