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

我想在我的应用程序中显示来自webview中api的externalurl链接

凌宏大
2023-03-14

我的代码:

我的适配器

@Override
    public void onBindViewHolder(@NonNull SliderAdapter.SliderHolder holder, int position) {
        final HomePage.ContentList item = homePageList.get(position);
          SliderHolder viewHolder = (SliderHolder) holder;
          viewHolder.txt_category.setText(item.getCategoryName());
          viewHolder.title_item_list_pager.setText(item.getTitle());
          if (item.getImage() != null)
              Glide.with(holder.itemView).load(item.getImage()).into(viewHolder.img);
          Log.d("TEST103-2", "PV");
          viewHolder.img.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Intent intent = new Intent(v.getContext(), NewsDetail.class);
                  intent.putExtra("newsdetail",homePageList.get(position).getExternalUrl());
                  v.getContext().startActivity(intent);
                  }
          });

     }

新闻细节类

package com.platin.android;

import android.os.Bundle;
import android.webkit.WebView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class NewsDetail extends AppCompatActivity {

    WebView newsdetail;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.news_detail);

        newsdetail = findViewById(R.id.newsdetail);
        newsdetail.getSettings().setJavaScriptEnabled(true);
        newsdetail.loadUrl(getIntent().getStringExtra("newsdetail"));

    }
}

我想显示我的外部链接来自api在webview在我的应用程序。当我点击详细信息时,它会在谷歌Chrome上打开。但我希望它在应用程序中显示。

共有1个答案

笪俊迈
2023-03-14

WebView中设置setWebViewClient,也可以启用javaScript

webView.loadUrl(getIntent().getStringExtra(LINK));
webView.setWebViewClient(new MyWebViewClient());
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);

克林特是:

private class MyWebViewClient extends WebViewClient {

@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
}
}
 类似资料: