代码之家  ›  专栏  ›  技术社区  ›  Soniya Joshi

Android如何在Android iframe webview中传递url?

  •  3
  • Soniya Joshi  · 技术社区  · 6 年前

    Android如何在Android中传递url iframe webview ? 我正在尝试从服务器动态传递url

    if(ResponseProduct.video!=null) {
    
                                String html = "<iframe width=\"450\" height=\"260\" src=\""+ResponseProduct.video+"\" ></iframe>";
                                WebView webView = (WebView) view.findViewById(R.id.video);
                                webView.setVisibility(View.VISIBLE);
                                webView.getSettings().setPluginState(WebSettings.PluginState.ON);
                                webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
                                webView.getSettings().setJavaScriptEnabled(true);
                                webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
                                webView.getSettings().setSupportMultipleWindows(true);
                                webView.setWebChromeClient(new WebChromeClient());
                                webView.setHorizontalScrollBarEnabled(false);
                                webView.loadData(html, "text/html; video/mpeg", "UTF-8");
    
                            } 
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Adil    6 年前

    你需要把 String 中的url路径 src 例如:

     String videoPath="http://api.thingspeak.com/channels/31592/charts/1?width=450&height=260&results=60&dynamic=true\\";
    
     String html = "<iframe width=\"450\" height=\"260\" style=\"border: 1px solid #cccccc;\" src=\""+videoPath+" ></iframe>";
    

    如果videoUrl为null或无效,则页面未加载,则需要隐藏webView

    以下是代码:

    private boolean isValidUrl(String url) {
          Pattern p = Patterns.WEB_URL;
          Matcher m = p.matcher(url.toLowerCase());
          if(m.matches())
             return true;
          else
            return false;
    }
    

    然后将其加载到 webView

     webview.getSettings().setJavaScriptEnabled(true);
    if(videoPath!=null && isValidUrl(videoPath)
    {
    mWebView.setVisibility(View.VISIBLE); 
    webview.loadData(html, "text/html", null);
        }
    
    else
    webview.setVisibility(View.GONE);