TradingView "Недопустимый символ" для NSE и BSE Scrips - PullRequest
0 голосов
/ 03 июня 2019

TradingView "Недопустимый символ" Для NSE и BSE scrips.

Я интегрирую график трейдинга в приложение для Android.Я скачал библиотеку графиков и использовал в соответствии с инструкциями.

Но есть проблема с результатом поиска.Он показывает только обмен результатами поиска, кроме BSE и NSE

. Я использовал следующий файл для загрузки в Android WebView.

index.html

<!DOCTYPE html> <html>
<head>

    <title>TradingView Charting Library demo -- Mobile (black)</title>

    <!-- Fix for iOS Safari zooming bug -->
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">

    <script type="text/javascript" src="charting_library/charting_library.min.js"></script>
    <script type="text/javascript" src="datafeeds/udf/dist/polyfills.js"></script>
    <script type="text/javascript" src="datafeeds/udf/dist/bundle.js"></script>

    <script type="text/javascript">

        function getParameterByName(name) {
            name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
            var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
                results = regex.exec(location.search);
            return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
        }

      function initOnReady() {
            var widget = new TradingView.widget({
                fullscreen: true,
                symbol: 'BSE:SWASTIKA',
                interval: 'D',
                container_id: "tv_chart_container",
                //  BEWARE: no trailing slash is expected in feed URL
                datafeed: new Datafeeds.UDFCompatibleDatafeed("https://demo_feed.tradingview.com"),
                library_path: "charting_library/",
                locale: getParameterByName('lang') || "en",

                disabled_features: ["use_localstorage_for_settings"],
                preset: "mobile",
                overrides: {
                    "paneProperties.background": "#222222",
                    "paneProperties.vertGridProperties.color": "#454545",
                    "paneProperties.horzGridProperties.color": "#454545",
                    "symbolWatermarkProperties.transparency": 90,
                    "scalesProperties.textColor" : "#AAA"
                }
            });
        };

        window.addEventListener('DOMContentLoaded', initOnReady, false);
    </script>

</head>

<body style="margin:0px;">
    <div id="tv_chart_container"></div>
</body>

Я использую следующий код Android для загрузки этого файла в веб-просмотре.

  private fun initWebView() {
    val webView = WebView(this)
    webView.settings.javaScriptEnabled = true
    webView.settings.allowFileAccessFromFileURLs = true

    // to prevent scaling text
    // see https://github.com/tradingview/charting_library/issues/3267#issuecomment-415031298
    webView.settings.textZoom = 100

    val chartingLibraryUrl = "file:///android_asset/charting_library/index.html"
    //val chartingLibraryUrl = "file:///android_asset/tradingview.html?symbol=BSE:SWASTIKA"
    val jsBridge = JSApplicationBridge(this)
    webView.addJavascriptInterface(jsBridge, "ApplicationBridge")

    webView.webViewClient = object : WebViewClient() {
        override fun onPageFinished(view: WebView?, url: String?) {
            super.onPageFinished(view, url)

            if (!url.equals(chartingLibraryUrl)) {
                return
            }

            webView.evaluateJavascript("""
                tvWidget.onChartReady(function() {
                    tvWidget.chart().onIntervalChanged().subscribe(
                        null,
                        function(interval) {
                            ApplicationBridge.onIntervalChanged(interval);
                        }
                    );
                });
            """) {
                // do nothing
            }
        }
    }

    // uncomment next line if you want to debug WebView in Chrome DevTools
    // WebView.setWebContentsDebuggingEnabled(true)

    webView.loadUrl(chartingLibraryUrl)
    setContentView(webView)
}

Это файл для некоторых символов биржи NYSE.Но указание недопустимого символа ошибки для сценариев BSE / NSE.

Снимок экрана приложения с ошибкой

...