Java 我已经建立了一个WebView应用程序,但网站下的弹出窗口没有显示

Java 我已经建立了一个WebView应用程序,但网站下的弹出窗口没有显示,java,android,android-studio,webview,android-webview,Java,Android,Android Studio,Webview,Android Webview,请帮助我,我已经开发了一个webview应用程序,其中我添加了Instagram链接,但我无法打开(+)符号在其他网站上添加图像,因此我无法打开任何网站下的弹出窗口 import android.Manifest; import android.annotation.TargetApi; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; impor

请帮助我,我已经开发了一个webview应用程序,其中我添加了Instagram链接,但我无法打开(+)符号在其他网站上添加图像,因此我无法打开任何网站下的弹出窗口

import android.Manifest;
import android.annotation.TargetApi;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class WebviewActivity extends AppCompatActivity {
    ConnectionDetector cd;
    static InterstitialAd mInterstitialAd;
    AdView adView;
    Spinner spUrls;
    WebView webView;
    ProgressBar pb;
    TextView tvGo;
    long time=0;
    String[] urls;
    String url="https://facebook.com/";
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview);
        getSupportActionBar().hide();
        cd=new ConnectionDetector(this);
        spUrls=(Spinner)findViewById(R.id.spUrls);
        webView=(WebView)findViewById(R.id.webView);
        tvGo=(TextView)findViewById(R.id.tvGo);
        pb=(ProgressBar)findViewById(R.id.msw_progress);

        urls=getResources().getStringArray(R.array.urls);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setAllowFileAccessFromFileURLs(true);
        webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
        webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
        webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        webView.getSettings().setAppCacheEnabled(false);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        if(cd.isConnectingToInternet()) {
            webView.loadUrl(url);
        }else{
            Toast.makeText(this,"PLEASE CHECK YOUR INTERNET CONNECTION",Toast.LENGTH_LONG).show();
        }
        webView.setWebViewClient(new WebViewClient());
        webView.setWebChromeClient(new WebChromeClient(){
            public void onProgressChanged(WebView view, int progress) {
                pb.setProgress(progress);
                if(progress==0)
                    pb.setProgress(0);
                //Make the bar disappear after URL is loaded, and changes string to Loading...
                /*setTitle("Loading...");
                setProgress(progress * 100); //Make the bar disappear after URL is loaded
                // Return the app name after finish loading
                if(progress == 100)
                    setTitle(R.string.app_name);*/
            }
        });
        WebView wv=new WebView(this);
        wv.setWebChromeClient(new WebChromeClient() {
                                  @Override
                                  public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                                      //Required functionality here
                                      return super.onJsAlert(view, url, message, result);
                                  }
                              });
        adView=(AdView)findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        adView.loadAd(adRequest);
        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("ca-app-pub-*******"); // Seems like you may be exposing your ad unit id to the public, may be better to keep this a secret or use the testing id found in the admob docs
        mInterstitialAd.loadAd(new AdRequest.Builder().build());

        tvGo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                url=urls[spUrls.getSelectedItemPosition()];
                if(cd.isConnectingToInternet()) {
                    webView.loadUrl(url);
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    }
                }else{
                    Toast.makeText(WebviewActivity.this,"PLEASE CHECK YOUR INTERNET CONNECTION",Toast.LENGTH_LONG).show();
                }
            }
        });
    }

    @Override
    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            if((System.currentTimeMillis()-time)<2000){
                super.onBackPressed();
            }else{
                Toast.makeText(this, "PRESS AGAIN TO EXIT", Toast.LENGTH_SHORT).show();
            }
            time=System.currentTimeMillis();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        }
    }
}
导入android.Manifest;
导入android.annotation.TargetApi;
导入android.os.Build;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.webkit.JsResult;
导入android.webkit.WebChromeClient;
导入android.webkit.WebSettings;
导入android.webkit.WebView;
导入android.webkit.WebViewClient;
导入android.widget.ProgressBar;
导入android.widget.Spinner;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.android.gms.ads.AdRequest;
导入com.google.android.gms.ads.AdView;
导入com.google.android.gms.ads.alad;
导入java.io.File;
导入java.io.IOException;
导入java.text.simpleDataFormat;
导入java.util.Date;
公共类WebviewActivity扩展了AppCompatActivity{
连接检测器cd;
静态间质间隙;
AdView AdView;
纺锤刺;
网络视图;
ProgressBar-pb;
TextView-tvGo;
长时间=0;
字符串[]URL;
字符串url=”https://facebook.com/";
@TargetApi(Build.VERSION\u code.JELLY\u BEAN)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u网络视图);
getSupportActionBar().hide();
cd=新的连接检测器(此);
spUrls=(微调器)findViewById(R.id.spUrls);
webView=(webView)findviewbyd(R.id.webView);
tvGo=(TextView)findViewById(R.id.tvGo);
pb=(进度条)findViewById(R.id.msw_进度);
URL=getResources().getStringArray(R.array.URL);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
webView.getSettings().setCacheMode(WebSettings.LOAD\u CACHE\u ELSE\u NETWORK);
webView.getSettings().setAppCacheEnabled(false);
webView.setScrollBarStyle(视图.滚动条\u内部\u覆盖);
if(cd.isConnectingToInternet()){
loadUrl(url);
}否则{
Toast.makeText(这是“请检查您的INTERNET连接”,Toast.LENGTH_LONG.show();
}
setWebViewClient(新的WebViewClient());
setWebView.WebChromeClient(新WebChromeClient(){
public void onProgressChanged(WebView视图,int-progress){
pb.setProgress(进度);
如果(进度==0)
pb.setProgress(0);
//在加载URL后使该栏消失,并将字符串更改为加载。。。
/*setTitle(“加载…”);
setProgress(progress*100);//加载URL后使该条消失
//加载完成后返回应用程序名称
如果(进度==100)
setTitle(R.string.app_name)*/
}
});
WebView wv=新的WebView(本);
wv.setWebChromeClient(新WebChromeClient(){
@凌驾
公共布尔onJsAlert(WebView视图、字符串url、字符串消息、JsResult){
//此处需要的功能
返回super.onJsAlert(视图、url、消息、结果);
}
});
adView=(adView)findviewbyd(R.id.adView);
AdRequest AdRequest=新建AdRequest.Builder().build();
adView.loadAd(adRequest);
Minterstitalad=新的间隙(本);
minterstitalad.setAdUnitId(“ca app pub-*******”)//似乎您可能正在向公众公开您的广告单元id,最好对此保密或使用admob文档中的测试id
minterstitalad.loadAd(新的addRequest.Builder().build());
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
url=url[spUrls.getSelectedItemPosition()];
if(cd.isConnectingToInternet()){
loadUrl(url);
if(minterstitalad.isload()){
minterstitalad.show();
}
}否则{
Toast.makeText(WebviewActivity.this,“请检查您的INTERNET连接”,Toast.LENGTH_LONG.show();
}
}
});
}
@凌驾
public void onBackPressed(){
if(webView.canGoBack()){
webView.goBack();
}否则{

如果((System.currentTimeMillis()-time)可以尝试查看有关在webview中显示弹出窗口的堆栈溢出帖子

我认为你的关键是该帖子中的以下代码:

WebView newWebView = new WebView(WebpageActivity.this);
            newWebView.getSettings().setJavaScriptEnabled(true);
            newWebView.getSettings().setSupportZoom(true);
            newWebView.getSettings().setBuiltInZoomControls(true);
            newWebView.getSettings().setPluginState(PluginState.ON);
            newWebView.getSettings().setSupportMultipleWindows(true);
            view.addView(newWebView);
            WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
            transport.setWebView(newWebView);
            resultMsg.sendToTarget();

            newWebView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
            });

希望这有帮助。

您能用与WebView设置和WebView加载相关的代码更新您的问题吗?问题已更新