我正在尝试为此交互式地图制作一个简单的Webview应用程序:http://gta5online.com/map-interactive>在地图下方也有一个全屏链接。

现在,我创建了一个资产文件夹,并包含“交互式”文件夹,其中包含所有文件,图标,地图图块和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");
   }
 }


在YT教程中,我看到他在Java文件中使用了以下内容:

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

最佳答案

看来您缺少一些进口商品。用此替换所有代码

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;
        }
    }

 }

09-10 00:11
查看更多