2013-09-04 7 views
5

私はネイティブのAndroidを持っていますMoodleベースのアプリケーションでは、SCORM形式のアプリケーションを表示する必要があります。
誰かがこのことについてどうお手伝いできますか...
コースは自分のMoodleベースのウェブサイトにSCORM形式でアップロードされています。私は私のネイティブAndroidアプリケーションでこれらのSCORMファイルを表示するにはどうすればよいここ
https://github.com/dongsheng/moodle/wiki/WebService:get_course_contentsAndroidでSCORMのコンテンツを表示する

指定されているよう
get_course_contents Webサービスは、私にコースファイルを指すURLを与えますか?
imsmanifest.xmlファイルを解析してSCORMパッケージの詳細を取得し、HTML5コンテンツを表示する必要はありますか?または、別の/より良い方法がありますか?

**


**
アップデート:私は今WebViewにSCORMパッケージの内容を表示しようとしてい

enter image description here
私は私のPOCプロジェクトのAssetsフォルダにこのパッケージをコピーした:
私のSCORMパッケージには次のようです。

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"); 

そして、私のマニフェストは次のとおりです:
WebView設定は

<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を表示することはできません....

enter image description here

また、SCORMパッケージをデバイスのsdcardにコピーしてhtmlファイルを開こうとしましたが、 HTMLViewerアプリにpenedと空白の画面を示した...

enter image description here

誰かが....これで私を助けてくださいすることができ、事前に
おかげで...

答えて

2
  1. まず、scormの構造を理解する必要があります。

  2. scormパッケージは、複数のフォルダとマニフェストファイルを含むzipファイルです。

  3. まず、scormのzipパッケージを解凍してから、そのimsmanifest.xmlファイルを解析し、そのタイトルに対応するhtmlファイルのタイトルとその他のアドレスを含む2つのリストを維持する必要があります。

  4. 私はsax2r2パーサーを使ってそのマニフェストファイルを解析し、その2つの配列リストにタイトルとhtmlファイルの他のアドレスを含んでいます。

  5. 後でios listをtitles配列で埋める必要があります。ユーザーがリストのタイトルをクリックすると、リストの位置が取得され、そのタイトルに対応するhtmlファイルのアドレスがaddress配列リストから取得されます。

  6. あなたのiosのwebviewでhtmlファイルを開くことができます。オープンscorm html5ファイルに必要なパラメータが有効になっていることを確認してください。

私はこれらの値を有効にして設定しましたが、これは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ファイルを開くために使用され、私はアンドロイドで上記の設定を有効にしている、これらの設定はあなただけ持っているhtmlファイルとDNTをロードする必要がIOSであってもよく、アンドロイドのデフォルトでありますこれらすべての値を有効にします。

私はscormの最初のhtml5ファイルであるhref.get(0)を取得しています。

簡単に言えば、scormを解凍し、imsmanifest.xmlファイルを解析し、そのデータを取得し、それを開いて/解析するscormに使用するだけです。

+0

ありがとう!あなたの答えはとても役に立ちました。 – Zeba

+0

問題がない場合は、何か問題があれば質問するかもしれません、私はダウンロードしていて、scormを解析しているアンドロイドアプリケーションを持っています... –

+0

@MurtazaAshraf:こんにちは、私はimsmanifest.xmlファイル私はHTMLファイルのアドレスを見つけることができますが、タイトルを見つけることができませんでした。助けてください。 –

0

core_course_get_courses

この機能を使用できます。

+0

はい@Ashish Nautiyal ...私はムードルベースのサーバーからコースのコンテンツを取得するためにその関数を使用しています..しかし、私の質問は、 'どのように私のネイティブのAndroidアプリケーションでこれらのSCORMファイルを表示するのですか? – Zeba

+0

buddy scormの実装はそれほど簡単ではありません。すべて最高::) –

+0

私はSCORMについてそれを理解しました:)しかし、今私の主な意図は、単にアンドロイドデバイス上にSCORMパッケージの内容を表示することでした。そして、私は最終的にデバイスにフラッシュプレーヤーをインストールすることでそれを達成することができました:)あなたの助けをとってどうも..... ..... – Zeba

2

Zeba、

あなたはLMS(ムードル)SCORMのAPIを提供する必要があります。このAPIは、のような標準的なSCORM関数を定義するJavaScriptですLMSInitialize()LMSFinish())は、あなたのAndroid SCORMプレーヤー(クライアント)とLMS(サーバー)の間のブリッジとして機能します。ムードルのwebversionで

、MoodleはSCORMパッケージのバージョンをチェックした後、メインAPI(存在するaicc.js.phpscorm_12.js.phpscorm_13として使用する適切なAPIを含みます.js.php)。

これらのAPIを拡張して、Androidアプリケーションで使用することができます。 APIを取得したら、Webサービス関数からファイルのURLを返すことでSCORMのコンテンツを取得できます。

各SCOファイル(例:scormpackage.zip/index.html)には独自のAPIWrapperがあります。ラッパーはそのようなLMS APIを見つけ、それを使ってLMSバックエンドに接続します。

adlnet websiteを見て、SCORMパッケージがSCORMコンテンツを追跡するためにAPIWrapperをどのように使用するかを見てください。

+0

この回答ありがとうございます。 – Zeba

+1

APIラッパーを使用することはできますが、使用することはできません。 APIオブジェクトまたはAPIアダプタをどのようにしてこれらのAPIと呼ぶことができますか? – Zeba

+0

また、オフラインモードでどうすればいいですか? – Zeba

-1

モバイルムーグルを使用します。多くの機能が追加され、それはあなたのウェブサイトに同期して動作し、アンドロイド、IOSおよびWindows Mobileのバージョンを持っています。

https://docs.moodle.org/31/en/Moodle_Mobile_features

ワークスオフラインが、唯一のウェブサイトに接触して得点することができクイズのようなもののためにいくつかの制限、と。

あなた自身をすべて新しいものにする必要はありません。 Moodle MobileはすでにSCORMをプレイしています。

関連する問題