【问题标题】:Simple webview sample code Android studio简单的 webview 示例代码 Android studio
【发布时间】:2016-02-02 14:18:55
【问题描述】:

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

现在我创建了一个资产文件夹并包含了“交互式”文件夹,其中包含所有文件、图标、地图图块和 HTML 文档。

我想将 HTML 文档从那里加载到作为 web 视图的活动中。所以它是一个本地文件。我希望应用程序处理它而不是默认浏览器。

这是我现在所做的:

我创建了一个新项目并将这些代码添加到 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);

【问题讨论】:

    标签: javascript android android-studio webview interactive


    【解决方案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;
            }
        }
    
     }
    

    【讨论】:

    • 好的,我自己在模拟器中的虚拟nexus 5设备上成功运行了它。我拥有的代码要短得多,我不知道它是否都符合要求。我如何在这里发布代码。我可以把它放在这里吗,因为它不会显示为标记为代码。
    • 我也会尝试使用您的代码。有没有办法使用应用程序用户代理而不是默认浏览器?顺便谢谢
    • 好的,我的代码是这样的。它起作用了:'package comapps.gta5online.gta5interactivemapcheats;导入android.support.v7.app.AppCompatActivity;导入android.os.Bundle;导入 android.webkit.WebView;' '
    • 'public class Home extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home);字符串 url ="file:///android_asset/interactive/map.html"; WebView 视图=(WebView) this.findViewById(R.id.webview); view.getSettings() .setJavaScriptEnabled(true); view.loadUrl(url); } }
    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多