簡體   English   中英

Android-Jetty服務器在沒有互聯網連接的情況下無法工作

[英]Android - Jetty server doesn't work without internet connection

我在Android上實現了Jetty服務器,以打開離線網站。 我正在使用Jetty 7。

問題是,如果我在沒有Internet連接的情況下運行服務器並嘗試打開本地網站,則它不會運行css文件,就像它不在運行本地Web服務器一樣,但是如果我打開Internet連接,它將在運行該網頁精細

Web應用程序的路徑http://localhost:1024/storage/emulated/0/offlineWebApp/index.html

本地網絡應用-https: //github.com/valnub/Framework7-Pure-Angular-Template

提前致謝。

搖動

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile files('libs/gson-2.2.4.jar')

compile files('libs/jetty-continuation-7.3.0.v20110203.jar')
compile files('libs/jetty-http-7.3.0.v20110203.jar')
compile files('libs/jetty-io-7.3.0.v20110203.jar')
compile files('libs/jetty-security-7.3.0.v20110203.jar')
compile files('libs/jetty-server-7.3.0.v20110203.jar')
compile files('libs/jetty-servlet-7.3.0.v20110203.jar')
compile files('libs/jetty-util-7.3.0.v20110203.jar')
compile files('libs/jetty-webapp-7.3.0.v20110203.jar')
compile files('libs/servlet-api-2.5.jar')

}

啟動Jetty服務器

 public void startOfflineServer(){

    Server server = new Server();
    SelectChannelConnector connector = new SelectChannelConnector();
    connector.setPort(1024);
    server.addConnector(connector);

    ResourceHandler resource_handler = new ResourceHandler();
    resource_handler.setResourceBase(".");

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[]{resource_handler, new DefaultHandler()});
    server.setHandler(handlers);

    try {
        if(!server.isStarted()){
            server.start();
         }

    } catch (Exception e) {
        e.printStackTrace();
    }

添加離線webView

 public void offlineWebView(){

    //activate hardware accelerator for API 19 and above
    if (Build.VERSION.SDK_INT >= 19) {
        mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
    } else {
        mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    }

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    webSettings.setDomStorageEnabled(true);
    mWebView.setWebChromeClient(new WebChromeClient());

    //http://localhost:1024/storage/emulated/0/offlineWebApp/index.html

    String externalStorageDirectory = Environment.getExternalStorageDirectory().toString() + "/offlineWebApp/index.html";                                                                                                                                                                                                                                  
    mWebView.loadUrl("http://localhost:1024" + externalStorageDirectory);
}

Logcat

12-17 17:27:46.917 4178-4178/com.scavaline.lms.mobilelms W/dalvikvm: Link of class 'Lorg/eclipse/jetty/util/log/JettyAwareLogger;' failed
12-17 17:27:47.007 4178-4178/com.scavaline.lms.mobilelms W/dalvikvm: dvmFindClassByName rejecting 'org/eclipse/jetty/http/mime_en_US'
12-17 17:27:47.247 4178-4178/com.scavaline.lms.mobilelms W/dalvikvm: dvmFindClassByName rejecting 'org/eclipse/jetty/http/mime_en'
12-17 17:27:47.247 4178-4178/com.scavaline.lms.mobilelms W/dalvikvm: dvmFindClassByName rejecting 'org/eclipse/jetty/http/mime'
12-17 17:27:49.940 4178-4178/com.scavaline.lms.mobilelms W/dalvikvm: dvmFindClassByName rejecting 'org/eclipse/jetty/http/encoding_en_US'
12-17 17:27:49.940 4178-4178/com.scavaline.lms.mobilelms W/dalvikvm: dvmFindClassByName rejecting 'org/eclipse/jetty/http/encoding_en'
12-17 17:27:49.940 4178-4178/com.scavaline.lms.mobilelms W/dalvikvm: dvmFindClassByName rejecting 'org/eclipse/jetty/http/encoding'
12-17 17:27:50.000 4178-4178/com.scavaline.lms.mobilelms W/System.err: 2015-12-17 17:27:50.002:INFO:oejs.Server:jetty-8.0.y.z-SNAPSHOT


12-17 17:28:27.737 4178-4178/? I/chromium: [INFO:CONSOLE(6)] "Viewport argument key "minimal-ui" not recognized and ignored.", source: http://localhost:1024/storage/emulated/0/offlineWebApp/index.html (6)
12-17 17:28:47.856 4178-4178/com.scavaline.lms.mobilelms I/chromium: [INFO:CONSOLE(10)] "Uncaught ReferenceError: angular is not defined", source: http://localhost:1024/storage/emulated/0/offlineWebApp/js/config.js (10)
12-17 17:28:47.866 4178-4178/com.scavaline.lms.mobilelms I/chromium: [INFO:CONSOLE(4)] "Uncaught TypeError: Cannot call method 'factory' of undefined", source: http://localhost:1024/storage/emulated/0/offlineWebApp/js/service/InitService.js (4)
12-17 17:28:47.866 4178-4178/com.scavaline.lms.mobilelms I/chromium: [INFO:CONSOLE(4)] "Uncaught TypeError: Cannot call method 'controller' of undefined", source: http://localhost:1024/storage/emulated/0/offlineWebApp/js/controller/IndexPageController.js (4)
12-17 17:28:47.876 4178-4178/com.scavaline.lms.mobilelms I/chromium: [INFO:CONSOLE(4)] "Uncaught TypeError: Cannot call method 'controller' of undefined", source: http://localhost:1024/storage/emulated/0/offlineWebApp/js/controller/DetailPageController.js 

嘗試將您的連接器設置為僅綁定到localhost

connector.setHost("localhost");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM