在Android中显示SCORM内容

在Android中显示SCORM内容,android,android-webview,moodle,scorm,Android,Android Webview,Moodle,Scorm,我有一个基于AndroidMoodle的本地应用程序,我必须在应用程序中显示SCORM格式的课程。 有人能帮我解决这个问题吗… 课程以SCORM格式上传到我的Moodle网站。 get\u course\u contentsweb服务为我提供了一个指向课程文件的url,如下所述 如何在本机Android应用程序中显示这些SCORM文件? 我是否需要解析imsmanifest.xml文件,获取SCORM包的详细信息并显示HTML5内容?还是有其他/更好的方法 ** ** 更新: 我现在尝试在W

我有一个基于AndroidMoodle的本地应用程序,我必须在应用程序中显示SCORM格式的课程。
有人能帮我解决这个问题吗…
课程以SCORM格式上传到我的Moodle网站。
get\u course\u contents
web服务为我提供了一个指向课程文件的url,如下所述

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

**


**
更新:
我现在尝试在
WebView
中显示SCORM包内容
我的SCORM软件包如下:

我已将此包复制到我的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");
我的清单是:

<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>

但我没有得到要求的结果,无法查看我的SWF

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

有人能帮我解决这个问题吗……
先谢谢你

核心课程获得课程

这个功能你可以使用

  • 首先,您必须了解scorm的结构

  • 您可以看到scorm包是一个zip文件,包含几个文件夹和一个清单文件

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

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

  • 稍后,您只需使用titles数组填充ios列表,当用户单击该列表的任何标题时,即可获得列表的位置,并从addresses数组列表中检索与该标题对应的html文件的地址

  • 最后,您可以在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));
    
    webView用于在android中打开html/html5文件,我在android中启用了上述设置,这些设置在android中是默认设置,可能在ios中,您只需加载该html文件,dnt必须启用所有这些值

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

    简单地说,您只需解压缩scorm,解析imsmanifest.xml文件并获取其数据,然后使用它打开/解析scorm

    Zeba

    您需要提供LMS(Moodle)SCORM API。这个API(它是一个javascript,它定义了标准SCORM函数,如LMSInitialize()LMSFinish())充当Android SCORM播放器(客户端)和LMS(服务器)之间的桥梁

    在Moodle的webversion中,Moodle检查SCORM包的版本,然后包括要用作主API的适当API(有aicc.js.phpSCORM_12.js.phpSCORM_13.js.php

    您可能希望扩展这些API以在Android应用程序中使用。一旦有了API,就可以通过从webservice函数返回文件的url来获取SCORM内容

    每个SCO文件(例如scormpackage.zip/index.html)都有自己的APIWrapper。包装器将找到这样的LMS API,并使用它连接到LMS后端


    查看以了解SCORM软件包如何使用APIWrapper来跟踪SCORM内容。

    使用mobile moodle。许多功能正在被添加,并与您的网站同步,有android、IOS和WindowsMobile版本

    离线工作,但有一些限制,如测验,它只能在与网站联系时得分


    没有必要让每件事都变得新鲜。Moodle Mobile已经在玩SCORM了。

    Yes@Ashish Nautiyal。。。我正在使用该函数从基于moodle的服务器获取课程内容。。但我的问题是‘如何在我的原生Android应用程序中显示这些SCORM文件?’实现SCORM并不是那么容易。最棒的是:)我发现了SCORM:)但我现在的主要目的只是在android设备上显示SCORM软件包的内容。我最终可以通过在设备上安装flash player来实现这一点:)无论如何,谢谢你的帮助……@AshishNautiyal:我需要为Android安装一个scorm播放器。你能帮我提供一些链接或其他参考资料吗。谢谢我想这太复杂了。兄弟,如果你愿意,你可以投我的票。非常感谢你!你的回答对我非常有用。没问题,如果你遇到任何问题,你可以问任何问题。我有一个android应用程序正在下载和解析scorm,你可以查看scorm…@MurtazaAshraf:你好,我对imsmanifest.xml文件有一个疑问,我可以找到HTML文件的地址,但我找不到它们的标题。请提供帮助。您可以查看清单中的标签/标题。确保您使用的是标准SCORM清单。Thanks@MurtazaAshraf如果我想跟踪ppt最后一张幻灯片的打开状态,该怎么办?留着下次用?无法实现它。类似于moodle player的东西。我已经能够获得包含API的API包装器,但无法使用它们。您能告诉我如何获取API对象或API适配器,使用它们调用这些API吗?以及如何实现