2015-11-02 31 views
2

我正在嘗試爲此交互式地圖製作一個簡單的webview應用程序:http://gta5online.com/map-interactive>地圖下方還有一個全屏鏈接。簡單的webview示例代碼Android工作室

現在我創建了一個資產文件夾,幷包含了「交互式」文件夾,其中包含所有文件,圖標,地圖圖塊和HTML文檔。

我想從那裏加載HTML文檔到webview的活動中。所以它是一個本地文件。我希望應用程序處理它而不是默認瀏覽器。

這裏是我做的現在:

我創建了一個新項目,並添加這些代碼到activity_home.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
    <WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

然後我說這個代碼,以便在對Internet的訪問即使它是我想加載的本地HTML文檔(供以後使用)也會顯示:

我還在第一個代碼塊中啓用了JavaScript,如您所見。

我是否應該將一些代碼放入home.java文件呢?

我嘗試這一點,但它給了錯誤:

package comapps.gta5online.gta5interactivemapcheats; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class Home extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 
    } 
} 

public class ViewWeb extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webview); 
     WebView wv; 
     WebView view=(WebView) this.findViewById(R.id.webView); 
     view.getSettings() .setJavaScriptEnabled(true); 
     view.loadUrl("file:///android_asset/interactive/map.html"); 
    } 
} 

在我看到他用這樣的Java文件在YT教程:

#in mainactivity.java 
setContentView(R.layout.activity_main); 
String url ="file:///android_asset/interactive/map.html"; 
WebView view=(WebView) this.findViewById(R.id.webView); 
view.getSettings() .setJavaScriptEnabled(true); 
view.loadUrl(url); 

回答

1

它看起來像你缺少一個很少進口。用你的代碼替換你所有的代碼

package comapps.gta5online.gta5interactivemapcheats; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class Home extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 

     WebView browser = (WebView) findViewById(R.id.webView); 
     WebSettings webSettings = browser.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     browser.loadUrl("file:///android_asset/interactive/map.html"); 

} 

     private class MyBrowser extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return false; 
     } 
    } 

} 
+0

好的,我成功地在模擬器中的虛擬nexus 5設備上運行它。我的代碼雖然短得多,但我不知道它是否全部符合。我如何在這裏發佈代碼。我可以把它放在這裏,因爲它不會顯示爲代碼標記。 – serdox

+0

我也會試着用你的代碼。有沒有使用應用程序用戶代理的方式,而不是默認的瀏覽器?謝謝你的方式 – serdox

+0

@serdox - 對於用戶代理設置有一個在這裏看它如何完成 - http://stackoverflow.com/questions/7327160/android-mobile-user-agent - http:// www。 useragentstring.com/pages/Android%20Webkit%20Browser/ – Tasos