0

私は Android 用のハイブリッド アプリに取り組んでいます。WebView で実行する JQuery を使用しています。

JQuery から、asset/www フォルダーからローカル ファイルを読み取る必要があります。

ブラウザでコードをテストすると正常に動作しますが、Android の WebView 内ではエラー メッセージが返されずにファイルが見つからないようです。

Webviewをロードする私のコード:

webViewMenu = (WebView) findViewById(R.id.webViewMenu);
// Add javascripInterface to the webviews
webViewMenu.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction");
// Open webview with Chrome
webViewMenu.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onExceededDatabaseQuota(String url, String
    databaseIdentifier, long currentQuota, long estimatedSize,
    long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
        quotaUpdater.updateQuota(estimatedSize * 2);
    }
});
WebSettings settingsMenu = webViewMenu.getSettings();
settingsMenu.setJavaScriptEnabled(true);
settingsMenu.setDatabaseEnabled(true);
settingsMenu.setDomStorageEnabled(true);
settingsMenu.setJavaScriptCanOpenWindowsAutomatically(true);
String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
settingsMenu.setDatabasePath(databasePath);
webViewMenu.loadUrl("file:///android_asset/www/menu.html");

ローカルファイルを読み取る私の JQuery コード:

$.get('../sql/models.sql', function(sql){
     console.log("info: init the models database with SQL: " + sql);
     sqlProcessRequest(sql, "ModelsLoading");
     },
     function(e){
     console.log("error: loading models.sql file!");
});

ブラウザでは、ファイル ファイルは適切に読み取られますが、WebView 内では、success 関数も error 関数も呼び出されません。

私のフォルダ ツリーは次のとおりです。 www/ index.html js/ code.js sql/ models.sql

任意のアイデア...どうもありがとう

4

0 に答える 0