我正在尝试为此互动地图制作一个简单的网络视图应用:http://gta5online.com/map-interactive>地图下方还有一个全屏链接。
现在我创建了一个资产文件夹,其中包含“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);
答案 0 :(得分: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;
}
}
}