简单的 webview 示例代码 Android studio

Posted

技术标签:

【中文标题】简单的 webview 示例代码 Android studio【英文标题】:Simple webview sample code 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_
   android:layout_

然后我添加了此代码以启用 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);

【问题讨论】:

【参考方案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设备上成功运行了它。我拥有的代码要短得多,我不知道它是否都符合要求。我如何在这里发布代码。我可以把它放在这里吗,因为它不会显示为标记为代码。 我也会尝试使用您的代码。有没有办法使用应用程序用户代理而不是默认浏览器?顺便谢谢 @serdox -- 用户代理设置在这里看看它是如何完成的 -- ***.com/questions/7327160/android-mobile-user-agent -- useragentstring.com/pages/Android%20Webkit%20Browser 好的,我的代码是这样的。它起作用了:'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);

以上是关于简单的 webview 示例代码 Android studio的主要内容,如果未能解决你的问题,请参考以下文章

在android的webview中嵌入一段HTML代码或Javascript脚本

如何在android 7中加载html之前在webview中注入javascript脚本

Android WebView 和 webrtc hello world 示例

Android webview示例不起作用(R.layout.show_web_view);

寻找具有多个 WebViews 的 Android ViewFlipper 示例

android WebView拦截请求详解