在Android中显示SCORM内容

Zeb*_*eba 5 android moodle scorm android-webview

我有一个原生的基于Android Moodle的应用程序,我必须在应用程序中显示SCORM格式的课程.
有人可以帮我解决这个问题......
这些课程以SCORM格式上传到我的Moodle网站.
get_course_contents网络服务给了我一个网址指向课程文件,这里指定
https://github.com/dongsheng/moodle/wiki/WebService:get_course_contents

如何在我的原生Android应用程序中显示这些SCORM文件?
我是否需要解析imsmanifest.xml文件并获取SCORM包的详细信息并显示HTML5内容?还是有另一种/更好的方法?

**


**
更新:
我现在尝试在a中显示SCORM包内容WebView.
我的SCORM包就像:
在此输入图像描述
我已将此包复制Assets到我的POC项目的文件夹中.
我的WebView设置是:

settings.setJavaScriptEnabled(true);
settings.setPluginsEnabled(true);
PluginState state = PluginState.ON;
settings.setPluginState(state);
settings.setAllowFileAccess(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setDatabaseEnabled(true);

String databasePath = this.getApplicationContext()
        .getDir("database", Context.MODE_PRIVATE).getPath();
settings.setDatabasePath(databasePath);
webview.loadUrl("file:///android_asset/ttttt.html");
Run Code Online (Sandbox Code Playgroud)

我的表现是:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.html5test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.html5test.MainActivity"
            android:hardwareAccelerated="true"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

但我没有得到所需的结果,无法查看我的SWF ....

在此输入图像描述

此外,当我将SCORM包复制到设备的SD卡上并试图打开html文件时,它在HTMLViewer应用程序中打开并显示一个空白的白色屏幕......

在此输入图像描述

有人可以帮我解决这个问题....
在此先感谢...

小智 3

  1. 首先你必须了解scorm的结构。

  2. 您可以看到 scorm 包是一个 zip 文件,其中包含几个文件夹和一个清单文件。

  3. 首先,您必须解压缩 scorm 的 zip 包,然后必须解析 imsmanifest.xml 文件并维护两个列表,其中一个包含标题和与该标题对应的 html 文件的其他地址。

  4. 我使用 sax2r2 解析器来解析该清单文件,并得到两个数组列表,其中一个包含 html 文件的标题和其他地址。

  5. 稍后你只需要用标题数组填充你的ios列表,当用户单击该列表的任何标题时,获取列表的位置并从地址数组列表中检索与该标题对应的html文件的地址。

  6. 现在,您可以在 ios 的 webview 中打开 html 文件,请确保已启用打开 scorm html5 文件所需的参数。

在android中,我已经启用并设置了这些值,这是java代码,但它可能对你有帮助。

WebViewClient webViewClient = new WebViewClient();
    webView.setWebViewClient(webViewClient);
    webView.clearCache(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.setInitialScale(1);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.clearHistory();
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setPluginState(PluginState.ON);
    webView.loadUrl("file://" + open_scorm.scorm_path
            + open_scorm.scorm_name + "/" + open_scorm.href.get(0));
Run Code Online (Sandbox Code Playgroud)

webView 用于在 android 中打开 html/html5 文件,我已在 android 中启用上述设置,这些设置是 android 中的默认设置,可能在 ios 中您只需加载该 html 文件并且 dnt 必须启用所有这些值。

在上面你可以看到我正在检索 href.get(0),这是 scorm 的第一个 html5 文件。

简而言之,您只需解压缩 scorm ,解析 imsmanifest.xml 文件并获取它的数据并使用它来打开/解析 scorm 。