当前位置: 首页 > 知识库问答 >
问题:

这段关于URL的代码在WebView中的位置是什么?

公西俊才
2023-03-14

我想把这段代码添加到我的Java文件中:

webView.setWebViewClient(new WebViewClient(){
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
       if (url != null && url.startsWith("http://")) {
           view.getContext().startActivity(
               new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
           return true;
       } else {
           return false;
       }
   }
}

但我不知道在哪。这是我的Java文件:包sherdle.donald.duck.app;导入android.app.activity;导入Android.os.bundle;导入Android.View.Window;导入android.webkit.webchromeclient;导入android.webkit.webview;导入Android.WebKit.WebViewClient;公共类WebPageLoader扩展activity{WebView WebView;

final Activity activity = this;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setSupportMultipleWindows(true);
webview.getSettings().setPluginsEnabled(true);

webview.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress)
    {
        activity.setTitle("Loading...");
        activity.setProgress(progress * 100);

        if(progress == 100)
            activity.setTitle(R.string.app_name);
    }
 });

 webview.setWebViewClient(new WebViewClient() {


    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        view.loadUrl(url);
        return true;

    }
   });



 webview.loadUrl("http://www.sherdle.com/apphosting/dd");
 }

 @Override
 public void onBackPressed (){
    if(webview.canGoBack()) webview.goBack();
    else super.onBackPressed();
 }
 }

我是android的新手,我做的每件事都需要很多帮助。谢谢你的帮助。

我现在已经有了这个:包Sherdle.Donald.Duck.App;导入android.app.activity;导入Android.os.bundle;导入Android.View.Window;导入android.webkit.webchromeclient;导入android.webkit.webview;导入Android.WebKit.WebViewClient;公共类WebPageLoader扩展activity{WebView WebView;

final Activity activity = this;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setSupportMultipleWindows(true);
webview.getSettings().setPluginsEnabled(true);

 webview.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress)
    {
        activity.setTitle("Loading...");
        activity.html" target="_blank">html" target="_blank">setProgress(progress * 100);

        if(progress == 100)
            activity.setTitle(R.string.app_name);
    }
 });



 webview.setWebViewClient(new WebViewClient() {


    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        view.loadUrl(url);
        return true;

    }
 });

 webview.setWebChromeClient(new WebChromeClient(){
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
       if (url != null && url.startsWith("http://")) {
           view.getContext().startActivity(
               new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
           return true;
       } else {
           return false;
       }
   }

  webview.loadUrl("http://www.sherdle.com/apphosting/dd");
  }



 @Override
 public void onBackPressed (){
    if(webview.canGoBack()) webview.goBack();
    else super.onBackPressed();
 }
 }

但是我在LoadUrl行上出现了这个错误:行上有多个标记-语法错误,插入“assignmentoperator Expression”以完成表达式-语法错误,插入“;”要完成FieldDeclaration-语法错误,请插入“)”要完成MethodInvocation-语法错误,请插入“}”要完成ClassBody-语法错误,请插入“;”要完成Statement-标记语法错误,构造错误

共有2个答案

凌远
2023-03-14

首先确保布局中包含webview。还要确保清单中有以下一行。

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

然后将其添加到onCreate中。也许不是最好的,但已经足够了。

边浩漫
2023-03-14

以这种方式使用

    @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setSupportMultipleWindows(true);
webview.getSettings().setPluginsEnabled(true);

 webview.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress)
    {
        activity.setTitle("Loading...");
        activity.setProgress(progress * 100);

        if(progress == 100)
            activity.setTitle(R.string.app_name);
    }
 });



 webview.setWebViewClient(new WebViewClient() {


    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        view.loadUrl(url);
        return true;

    }
 });

 webview.setWebChromeClient(new WebChromeClient(){
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
       if (url != null && url.startsWith("http://")) {
           view.getContext().startActivity(
               new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
           return true;
       } else {
           return false;
       }
   }


  });

webview.loadUrl("http://www.sherdle.com/apphosting/dd");


 }

 @Override
 public void onBackPressed (){
    if(webview.canGoBack()) webview.goBack();
    else super.onBackPressed();
 }
 类似资料:
  • 问题内容: 此代码来自Python的文档。我有点困惑。 以下是我最初的想法: 为什么这段代码会创建一个无限循环,而第一个却没有呢? 问题答案: 这是陷阱之一!python,可以逃脱初学者。 这是这里的魔术酱。 观察: 现在没有: 这里要注意的主要事情是返回现有列表的a,因此您要遍历未修改的副本。 您可以使用以下命令检查是否引用了相同的列表: 在第一种情况下: 在第二种情况下: 值得注意的是,它称为

  • 在本例中,TLS版本是最高版本(1.2),还是我需要将TLS版本显式为 支持TLS 1.2版

  • 问题内容: https://play.golang.org/p/ESi1mKAo1x_S 嗯,我不知道为什么先打印“ 2”。 我想检查信息。但是我不知道应该检查什么信息,因此我在此处发布问题以寻求帮助。 我认为第一个goroutine是第一个推送队列。它应该首先打印。 问题答案: 您不会将两个已启动的goroutine 彼此 同步,因此无法保证它们以什么顺序运行。您唯一要同步的是等待其他2个完成的

  • 我正在学习Scala语言,我不明白这段代码: 当是时,是从的范围是什么意思?

  • 我大致了解ES6函数箭头的工作原理。我也明白有时括号可以用来隐式返回对象。但是,就React/JSX而言,下面的括号是必要的吗? 还是可以简单地执行以下操作? 所以,我想我真正应该问的是jsx元素是否被视为js对象。如果是这样的话,那么括号可能是用来从fat-arrow函数隐式返回它们的。

  • 问题内容: 使用时应该遵循哪种目录结构?例如,如果我正在构建WSGI应用程序并创建了一个称为virtualenv的虚拟环境,那么它将以类似以下的目录结构开始: 创建此环境后,将在哪里放置自己的环境: python文件? 静态文件(图像/等)? “自定义”程序包,例如在线提供的但在奶酪商店中找不到的程序包? 关于目录? (假设我已经知道virtualenv目录本身应该在哪里。) 问题答案: 提供py