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
首先你必须了解scorm的结构。
您可以看到 scorm 包是一个 zip 文件,其中包含几个文件夹和一个清单文件。
首先,您必须解压缩 scorm 的 zip 包,然后必须解析 imsmanifest.xml 文件并维护两个列表,其中一个包含标题和与该标题对应的 html 文件的其他地址。
我使用 sax2r2 解析器来解析该清单文件,并得到两个数组列表,其中一个包含 html 文件的标题和其他地址。
稍后你只需要用标题数组填充你的ios列表,当用户单击该列表的任何标题时,获取列表的位置并从地址数组列表中检索与该标题对应的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));
Run Code Online (Sandbox Code Playgroud)
webView 用于在 android 中打开 html/html5 文件,我已在 android 中启用上述设置,这些设置是 android 中的默认设置,可能在 ios 中您只需加载该 html 文件并且 dnt 必须启用所有这些值。
在上面你可以看到我正在检索 href.get(0),这是 scorm 的第一个 html5 文件。
简而言之,您只需解压缩 scorm ,解析 imsmanifest.xml 文件并获取它的数据并使用它来打开/解析 scorm 。