2015-11-02 54 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