[英]Display SCORM content in Android
我有一個原生的基於Android Moodle的應用程序,我必須在應用程序中顯示SCORM格式的課程。
有人可以幫我解決這個問題嗎...
課程以SCORM格式上傳到我的Moodle網站。
get_course_contents
Web服務為我提供了一個指向課程文件的URL, get_course_contents
指定的
https://github.com/dongsheng/moodle/wiki/WebService:get_course_contents
如何在我的原生Android應用程序中顯示這些SCORM文件?
我是否需要解析imsmanifest.xml
文件並獲取SCORM包的詳細信息並顯示HTML5內容? 還是有另一種/更好的方法?
**
**
更新:
我現在嘗試在WebView
顯示SCORM包內容。
我的SCORM包就像:
我已將此包復制到我的POC項目的Assets
文件夾中。
我的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列表,當用戶點擊該列表的任何標題時,獲取列表的位置並從地址數組列表中檢索與該標題對應的html文件的地址。
你可以在你的ios的webview中打開html文件,確保已啟用open 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(它是定義標准SCORM函數的javascript,如LMSInitialize()和LMSFinish() )充當Android SCORM播放器(客戶端)和LMS(服務器)之間的橋梁。
在Moodle的webversion中,Moodle檢查SCORM包的版本,然后包含適當的API作為主API(有aicc.js.php , scorm_12.js.php和scorm_13.js.php )。
您可能希望擴展這些API以在Android應用程序中使用。 獲得API后,您可以通過從Web服務函數返回文件的URL來獲取SCORM內容。
每個SCO文件(例如scormpackage.zip/index.html)都有自己的APIWrapper。 包裝器將找到這樣的LMS API並將其用於連接到LMS后端。
查看adlnet網站 ,了解SCORM包如何使用APIWrapper來跟蹤SCORM內容。
core_course_get_courses
你可以使用這個功能。
使用移動moodle。 正在添加許多功能,它與您的網站同步工作,有Android,IOS和Windows Mobile版本。
https://docs.moodle.org/31/en/Moodle_Mobile_features
離線工作,但有一些限制,如測驗,只能與網站聯系得分。
不需要自己創造新的東西。 Moodle Mobile已經播放了SCORM。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.