我有一个原生的基于Android Moodle的应用程序,我必须在应用程序中显示SCORM格式的课程.
有人可以帮我解决这个问题吗…
课程以SCORM格式上传到我的Moodle网站.
get_course_contents Web服务为我提供了一个指向课程文件的URL,如此处所指定的
https://github.com/dongsheng/moodle/wiki/WebService:get_course_contents
如何在我的原生Android应用程序中显示这些SCORM文件?
我是否需要解析imsmanifest.xml文件并获取SCORM包的详细信息并显示HTML5内容?还是有另一种/更好的方法?
**
**
更新:
我现在尝试在WebView中显示SCORM包内容.
我的SCORM包就像:
我已将此包复制到我的POC项目的Assets文件夹中.
我的WebView设置是:
@H_404_23@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");
我的表现是:
@H_404_23@
但我没有得到所需的结果,无法查看我的SWF ….
此外,当我将SCORM包复制到设备的SD卡上并试图打开html文件时,它在HTMLViewer应用程序中打开并显示一个空白的白色屏幕……
有人可以帮我解决这个问题….
提前致谢…
最佳答案
>首先你必须了解scorm的结构.
>您可以看到scorm包是一个包含几个文件夹的zip文件和一个清单文件.
>首先你需要解压缩scorm的zip包然后你必须解析那个imsmanifest.xml文件并维护两个列表,其中包含与该标题对应的html文件的标题和其他地址.
>我使用sax2r2解析器来解析该清单文件,并获得了两个包含标题和html文件的其他地址的数组列表.
>稍后你只需要填写带有titles数组的ios列表,当用户点击该列表的任何标题时,获取列表的位置并从地址数组列表中检索与该标题对应的html文件的地址.
> inaly你可以在你的ios的webview中打开html文件,确保已经启用了开放scorm html5文件所需的参数.
原文链接:https://www.f2er.com/android/430941.html>您可以看到scorm包是一个包含几个文件夹的zip文件和一个清单文件.
>首先你需要解压缩scorm的zip包然后你必须解析那个imsmanifest.xml文件并维护两个列表,其中包含与该标题对应的html文件的标题和其他地址.
>我使用sax2r2解析器来解析该清单文件,并获得了两个包含标题和html文件的其他地址的数组列表.
>稍后你只需要填写带有titles数组的ios列表,当用户点击该列表的任何标题时,获取列表的位置并从地址数组列表中检索与该标题对应的html文件的地址.
> inaly你可以在你的ios的webview中打开html文件,确保已经启用了开放scorm html5文件所需的参数.
在android我启用并设置这些值这是java代码,但它可能会帮助你.
@H_404_23@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文件.