【问题标题】:errors for simple webview app in android studioandroid studio中简单webview应用程序的错误
【发布时间】:2016-02-02 11:41:20
【问题描述】:

我尝试为这个交互式地图制作一个简单的 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"

WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("file:///android_asset/interactive/map.html");
/>

然后我添加了此代码以启用互联网访问以显示,即使它是我想要加载的本地 html 文档(供以后使用):

  <uses-permission android:name="android.permission.INTERNET"/>

如您所见,我还在第一个代码块中启用了 javascript。

我也应该在 home.java 文件中添加一些代码吗?

在一个 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);

有人可以通过解释我做错了什么以及如何完成这个应用程序的简单步骤来帮助菜鸟实现这一目标吗?我相信这对你们来说很简单,即使对我来说很难。

【问题讨论】:

    标签: android dictionary android-studio webview


    【解决方案1】:

    在 Android 中要非常小心,你永远不能将 Java 代码放入 XML 代码中。

    这段代码:

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

    【讨论】:

      【解决方案2】:

      在你的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"/>
      

      【讨论】:

      • 还有其他的,比如启用 javascript、加载 html 文件等?
      • 您的问题是什么?您的 java 代码(在您的问题中)将您的 MainActivity.java 文件放在 onCreate 覆盖方法中。像这样:stackoverflow.com/a/3152441/2738172
      • 嘿,谢谢你的回答。我的问题是我是初学者。我猜java文件夹中还有一些其他代码作为标准:
      • 包 comapps.gta5online.gta5interactivemapcheats;导入android.support.v7.app.AppCompatActivity;导入android.os.Bundle;公共类 Home 扩展 AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); } }
      • 我也应该保留这个吗?
      【解决方案3】:

      【讨论】:

      • 抱歉@ashish 没明白你的意思?你说有没有违反安卓政策?
      • 嘿,该应用程序现在以其基本形式运行。观看视频:youtu.be/qUNEpZbfRDM
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      相关资源
      最近更新 更多