【问题标题】:Snapchat Url load issueSnapchat URL 加载问题
【发布时间】:2016-08-05 09:02:26
【问题描述】:

我在我的 Android 应用程序中集成了在 Snapchat 上关注我们,为此我在我的默认 Web 视图中显示 https://www.snapchat.com/add/danubeco URL。这在 Google Chrome 中运行良好,但无法在设备的默认浏览器中加载。这是在 Web 视图中尝试的错误 - “未捕获的 TypeError:Array.from 不是函数”,来源:https://www.snapchat.com/deeplink/static/js/sc-web-frame.js。我已经尝试了几种设备并发现相同,但问题是它在 IOS 中运行良好。我附上了带有错误的网络视图的屏幕截图。请建议我可以解决这个问题的方法。

屏幕截图中显示的 URL - snapchat://add/danubeco?sc_referrer=&link=%2Fadd%2Fdanubeco&sc_ua=Mozilla%2F5.0+%28Linux%3B+Android+6.0%3B+Android+SDK+built+for +x86+Build%2FMASTER%3B+wv%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Version%2F4.0+Chrome%2F44.0.2403.119+Mobile+Safari%2F537。 36&cid=b69e8a19-adf5-4209-9600-a26c0d5e0485

我只是在 xml 中获取了 web 视图,并在 java 类中编写了下面的代码。

webView = (WebView) root.findViewById(R.id.webView);
webView.setKeepScreenOn(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.setWebViewClient(new MyWebClient());
webView.loadUrl(url);

任何形式的帮助都将是可观的。

谢谢。

【问题讨论】:

  • 这不是网址。它以 snapchat 开头,而不是 httphttps。它应该只能使用 snapchat App 打开。
  • 您不应该使用Intent 而不是 WebView 吗?
  • 我需要在我的网页视图中加载snapchat.com/add/danubeco URL。我通过 WebViewClient 类的 shouldOverrideUrlLoading 函数遇到了第二个
  • @Jignesh Jain 试试我的答案 使用 snapchat url 效果很好....shouldOverrideUrlLoading 上的条件,而不是在此加载 url....

标签: javascript android webview snapchat


【解决方案1】:

尝试在 shouldOverrideUrlLoading 上不加载 url 并将条件设为 false,这是完美的工作

   WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);
    //ws.setJavaScriptEnabled(true);
    settings.setJavaScriptCanOpenWindowsAutomatically(true);
    webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);



webview.setWebViewClient(new WebViewClient() {

        public boolean shouldOverrideUrlLoading(WebView view, String url) {


            if( url.startsWith("http:") || url.startsWith("https:") ) {
                return false;
            }
          //  Log.i(TAG, "Processing webview url click..."+url);
         //  view.loadUrl(url);

            return true;
        }


        public void onPageFinished(WebView view, String url) {
            Log.e(TAG, "Finished loading URL: " + url);
            if (progressBar.isShowing()) {
                progressBar.dismiss();
            }


        }


        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {



        }
    });

    webview.loadUrl("https://www.snapchat.com/add/danubeco");

【讨论】:

  • 这并没有解决我的 snapchat 问题。还有其他建议吗?
  • 将 setJavaScriptEnabled 更改为 false 对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多