Вземете директен URL адрес на видео Vimeo за Android

Трябва да възпроизвеждам видеоклипове на Vimeo в приложението си, като имам само идентификатор на видео. Например 83342420. Как мога да получа url на vimeo видео? Или има някакъв друг начин за възпроизвеждане на видео в android?

Опитах WebView решение, но не отговаря. Опитах също URL адресите като http://vimeo.com/moogaloop/play/clip:7926539/5cd4f7989ee0cb5018c131260aa1fc8c/1309860388/, но получавам 404 Not found. Може би имам нужда от някакъв API ключ или токен?

Благодаря.


person Andrew F    schedule 13.04.2014    source източник


Отговори (5)


Добре. За да получите директен url за видео във Vimeo, просто трябва да изпратите GET заявка до url:

old url - http://player.vimeo.com/v2/video/<video_id>/config
**UPD**: new url - http://player.vimeo.com/video/<video_id>/config

В резултат ще получите такъв отговор:

{
  "cdn_url": "http://f.vimeocdn.com",
  "view": 1,
  "request": {
    "files": {
      "h264": {
        "mobile": {
          "profile": 116,
          "origin": "ns3.pdl",
          "url": "http://pdl.vimeocdn.com/84730/904/216566897.mp4?token2=1397407519_8b323701fa08b3531612d6160be9cc5e&aksessionid=01788ff54890a9b2",
          "height": 270,
          "width": 480,
          "id": 216566897,
          "bitrate": 547,
          "availability": 60
        },
        "hd": {
          "profile": 113,
          "origin": "ns3.pdl",
          "url": "http://pdl.vimeocdn.com/87179/143/216566895.mp4?token2=1397407519_1d0ef28841fb628c423f9dbeb93168d4&aksessionid=2a0b480300c82ef7",
          "height": 720,
          "width": 1280,
          "id": 216566895,
          "bitrate": 3142,
          "availability": 60
        },
        "sd": {
          "profile": 112,
          "origin": "ns3.pdl",
          "url": "http://pdl.vimeocdn.com/57248/568/216566886.mp4?token2=1397407519_395f6cf4e80b98826424e21c8de508d1&aksessionid=598e59776ed0979a",
          "height": 360,
          "width": 640,
          "id": 216566886,
          "bitrate": 1198,
          "availability": 60
        }
      },
      "hls": {
        "all": "http://av20.hls.vimeocdn.com/i/,57248/568/216566886,87179/143/216566895,84730/904/216566897,.mp4.csmil/master.m3u8?primaryToken=1397407519_93cf5d54b3482e3a1e716cf28b9550a7",
        "hd": "http://av20.hls.vimeocdn.com/i/,87179/143/216566895,.mp4.csmil/master.m3u8?primaryToken=1397407519_a84194ace821175f0ee0ff9ab8d9241f"
      },
      "codecs": [
        "h264"
      ]
    },
    "ga_account": "UA-76641-35",
    "timestamp": 1397406594,
    "expires": 925,
    "prefix": "/v2",
    "session": "d85291b3aa5b3e5fbf3ea82d81d7d5e849aa50e5",
    "cookie": {
      "scaling": 1,
      "volume": 1.0,
      "hd": null,
      "captions": null
    },
    "cookie_domain": ".vimeo.com",
    "referrer": null,
    "conviva_account": "c3.Vimeo",
    "flags": {
      "login": 1,
      "preload_video": 1,
      "plays": 1,
      "partials": 1,
      "conviva": 1
    },
    "build": {
      "player": "a30ff35f",
      "js": "2.4.7"
    },
    "urls": {
      "zeroclip_swf": "http://f.vimeocdn.com/p/external/zeroclipboard/ZeroClipboard.swf",
      "js": "http://f.vimeocdn.com/p/2.4.7/js/player.js",
      "proxy": "https://f.vimeocdn.com/p/2.4.7/proxy.html",
      "conviva": "http://livepassdl.conviva.com/ver/2.72.0.13589/LivePass.js",
      "flideo": "http://f.vimeocdn.com/p/flash/flideo/1.0.3b10/flideo.swf",
      "canvas_js": "http://f.vimeocdn.com/p/2.4.7/js/player.canvas.js",
      "moog": "http://f.vimeocdn.com/p/flash/moogaloop/6.0.9/moogaloop.swf?clip_id=83342420",
      "conviva_service": "http://livepass.conviva.com",
      "moog_js": "http://f.vimeocdn.com/p/2.4.7/js/moogaloop.js",
      "zeroclip_js": "http://f.vimeocdn.com/p/external/zeroclipboard/ZeroClipboard-patch.js",
      "css": "http://f.vimeocdn.com/p/2.4.7/css/player.css"
    },
    "signature": "09c6bc41e6a7d343748ed3e00420a108"
  },
  "player_url": "player.vimeo.com",
  "video": {
    "allow_hd": 1,
    "height": 720,
    "owner": {
      "account_type": "pro",
      "name": "Sabian",
      "img": "http://i.vimeocdn.com/portrait/2511583_75x75.jpg",
      "url": "http://vimeo.com/sabian",
      "img_2x": "http://i.vimeocdn.com/portrait/2511583_150x150.jpg",
      "id": 8487062
    },
    "thumbs": {
      "1280": "http://i.vimeocdn.com/video/459788805_1280.jpg",
      "960": "http://i.vimeocdn.com/video/459788805_960.jpg",
      "640": "http://i.vimeocdn.com/video/459788805_640.jpg"
    },
    "duration": 25,
    "id": 83342420,
    "hd": 1,
    "embed_code": "<iframe src=\"//player.vimeo.com/video/83342420\" width=\"500\" height=\"281\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>",
    "default_to_hd": 0,
    "title": "Mike Portnoy",
    "url": "https://vimeo.com/83342420",
    "privacy": "anybody",
    "share_url": "http://vimeo.com/83342420",
    "width": 1280,
    "embed_permission": "public",
    "fps": 24.0
  },
  "build": {
    "player": "a30ff35f",
    "rpc": "dev"
  },
  "embed": {
    "player_id": null,
    "outro": "videos",
    "api": 2,
    "context": "embed.main",
    "time": 0,
    "color": "00adef",
    "settings": {
      "fullscreen": 1,
      "byline_badge": {
        "url": "http://vimeo.com/sabian",
        "type": "pro"
      },
      "byline": 1,
      "like": 1,
      "playbar": 1,
      "title": 1,
      "color": 0,
      "branding": 1,
      "share": 1,
      "scaling": 1,
      "logo": 1,
      "info_on_pause": 0,
      "watch_later": 1,
      "portrait": 1,
      "embed": 1,
      "badge": 0,
      "volume": 1
    },
    "on_site": 0,
    "loop": 0,
    "autoplay": 0
  },
  "vimeo_url": "vimeo.com",
  "user": {
    "liked": 0,
    "account_type": "basic",
    "logged_in": 1,
    "owner": 0,
    "watch_later": 0,
    "id": 26896968,
    "mod": false
  }
}
person Andrew F    schedule 13.04.2014
comment
Vimeo не поддържа, нито препоръчва използването на тези URL адреси. Те ще се променят без предварително известие и ще се променят без обещание за жизнеспособна замяна за вашите нужди. - person Dashron; 14.04.2014
comment
Това работи доста добре. Има ли начин да получите 4k видео адрес за видеоклипове, които са в 4k? Благодаря. - person casolorz; 12.12.2016

Vimeo не предлага поддръжка за никакви URL адреси за възпроизвеждане на видеоклипове. Vimeo предлага само 2 метода за възпроизвеждане на видеоклипове на мобилни устройства.

  1. Вградените видеоклипове работят в много уеб изгледи на Android.
  2. Членовете на PRO имат достъп до директни връзки към видео файлове (включително HLS) и могат да ги използват в собствените си мобилни приложения.
person Dashron    schedule 14.04.2014
comment
Уеб изгледите на Android понякога не могат да използват функцията за автоматично плащане. И някои други лоши характеристики. Въпреки това публикувах отговор. Благодаря! - person Andrew F; 14.04.2014
comment
@dashron Можете ли да разширите точка 2? Имам същата нужда в нашето приложение Xamarin (кръстосана платформа). - person Chase Florell; 24.04.2014
comment
Когато поискате видеоклип, ще видите ключ за файлове, ако са изпълнени две условия. 1. Удостовереният потребител е собственик на видеоклипа. 2. Удостовереният потребител е PRO абонат. - person Dashron; 24.04.2014
comment
@Dashron, който споменахте във вашата 2-ра точка: членовете на PRO имат достъп до директни връзки към видео файлове. Както знам, Vimeo не поддържа, нито препоръчва използването на URL адреси. Променят ли URL адресите без предварително известие дори за членове на PRO? - person Jyo; 12.10.2020
comment
@jyo Бих препоръчал да се обърнете към екипа за поддръжка на Vimeo за помощ. Вече не съм в крак с API на Vimeo. - person Dashron; 13.10.2020
comment
Как професионалните членове получават достъп до URL адресите за своите лични видеоклипове с помощта на API? - person Scorb; 03.12.2020

използвайте този url - http://player.vimeo.com/video/video_id/config с метод GET и подайте вашия video_id, ще получите резултата по-долу. това е последният отговор идва от Vimeo, защото отговорът за промяна.

{
  "cdn_url": "https://f.vimeocdn.com",
  "vimeo_api_url": "api.vimeo.com",
  "request": {
    "files": {
      "dash": {
        "separate_av": true,
        "streams": [
          {
            "profile": 164,
            "quality": "360p",
            "id": 1047687609,
            "fps": 30
          },
          {
            "profile": 175,
            "quality": "1080p",
            "id": 1047687611,
            "fps": 30
          },
          {
            "profile": 165,
            "quality": "540p",
            "id": 1047687607,
            "fps": 30
          },
          {
            "profile": 174,
            "quality": "720p",
            "id": 1047687604,
            "fps": 30
          }
        ],
        "cdns": {
          "akfire_interconnect_quic": {
            "url": "https://112skyfiregce-vimeo.akamaized.net/exp=1531572843~acl=%2F279620511%2F%2A~hmac=fc67765d21d06ae32cd69b0fa7a9f229ba5c492a6ea14d14cfee32fce9afb1a2/279620511/sep/video/1047687609,1047687611,1047687607,1047687604/master.json?base64_init=1",
            "origin": "gcs"
          },
          "fastly_skyfire": {
            "url": "https://skyfire.vimeocdn.com/1531572843-0xb2b233940673f62145704b412d1469ea2f179a4c/279620511/sep/video/1047687609,1047687611,1047687607,1047687604/master.json?base64_init=1",
            "origin": "gcs"
          }
        },
        "default_cdn": "akfire_interconnect_quic"
      },
      "hls": {
        "separate_av": false,
        "default_cdn": "akfire_interconnect_quic",
        "cdns": {
          "akfire_interconnect_quic": {
            "url": "https://112skyfiregce-vimeo.akamaized.net/exp=1531572843~acl=%2F279620511%2F%2A~hmac=fc67765d21d06ae32cd69b0fa7a9f229ba5c492a6ea14d14cfee32fce9afb1a2/279620511/video/1047687609,1047687611,1047687607,1047687604/master.m3u8",
            "origin": "gcs"
          },
          "fastly_skyfire": {
            "url": "https://skyfire.vimeocdn.com/1531572843-0xb2b233940673f62145704b412d1469ea2f179a4c/279620511/video/1047687609,1047687611,1047687607,1047687604/master.m3u8",
            "origin": "gcs"
          }
        }
      },
      "progressive": [
        {
          "profile": 175,
          "width": 1920,
          "mime": "video/mp4",
          "fps": 30,
          "url": "https://gcs-vimeo.akamaized.net/exp=1531572843~acl=%2A%2F1047687611.mp4%2A~hmac=90eacf4c4956f322393ac1b5e4d0df91694c5e5af36eabccd2a28780e4364148/vimeo-prod-skyfire-std-us/01/924/11/279620511/1047687611.mp4",
          "cdn": "akamai_interconnect",
          "quality": "1080p",
          "id": 1047687611,
          "origin": "gcs",
          "height": 1080
        },
        {
          "profile": 164,
          "width": 640,
          "mime": "video/mp4",
          "fps": 30,
          "url": "https://gcs-vimeo.akamaized.net/exp=1531572843~acl=%2A%2F1047687609.mp4%2A~hmac=4c90608f99044633906efb33f04e314569cd865266529b96977ee7eeecce4f80/vimeo-prod-skyfire-std-us/01/924/11/279620511/1047687609.mp4",
          "cdn": "akamai_interconnect",
          "quality": "360p",
          "id": 1047687609,
          "origin": "gcs",
          "height": 360
        },
        {
          "profile": 165,
          "width": 960,
          "mime": "video/mp4",
          "fps": 30,
          "url": "https://gcs-vimeo.akamaized.net/exp=1531572843~acl=%2A%2F1047687607.mp4%2A~hmac=a0f28428ec2da33b5501936f32a3bc17aee0446dfbb5f0597c5b51f743cebc65/vimeo-prod-skyfire-std-us/01/924/11/279620511/1047687607.mp4",
          "cdn": "akamai_interconnect",
          "quality": "540p",
          "id": 1047687607,
          "origin": "gcs",
          "height": 540
        },
        {
          "profile": 174,
          "width": 1280,
          "mime": "video/mp4",
          "fps": 30,
          "url": "https://gcs-vimeo.akamaized.net/exp=1531572843~acl=%2A%2F1047687604.mp4%2A~hmac=6a3da45344051eb54196967bebebbd34841f09c049ca377b7f664786f24dfb95/vimeo-prod-skyfire-std-us/01/924/11/279620511/1047687604.mp4",
          "cdn": "akamai_interconnect",
          "quality": "720p",
          "id": 1047687604,
          "origin": "gcs",
          "height": 720
        }
      ]
    },
    "lang": "en",
    "sentry": {
      "url": "https://[email protected]/2",
      "enabled": false,
      "debug_enabled": true,
      "debug_intent": 0
    },
    "ab_tests": {},
    "referrer": null,
    "cookie_domain": ".vimeo.com",
    "timestamp": 1531568943,
    "gc_debug": {
      "bucket": "vimeo-player-debug"
    },
    "expires": 3600,
    "currency": "USD",
    "session": "d2a0f4ba2c4a97b7e59e349e54ee5e4d212a78b01531568943",
    "cookie": {
      "scaling": 1,
      "volume": 1,
      "quality": null,
      "hd": 0,
      "captions": null
    },
    "build": {
      "player": "",
      "js": "2.75.6"
    },
    "urls": {
      "zeroclip_swf": "https://f.vimeocdn.com/p/external/zeroclipboard/ZeroClipboard.swf",
      "fresnel": "https://fresnel.vimeocdn.com/add/player-stats",
      "js": "https://f.vimeocdn.com/p/2.75.6/js/player.js",
      "proxy": "https://player.vimeo.com/static/proxy.html",
      "chromeless_css": "https://f.vimeocdn.com/p/2.75.6/css/chromeless.css",
      "flideo": "https://f.vimeocdn.com/p/flash/flideo/1.0.6/flideo.swf",
      "moog": "https://f.vimeocdn.com/p/flash/moogaloop/6.4.5/moogaloop.swf?clip_id=279620511",
      "three_js": "https://f.vimeocdn.com/p/external/three.rvimeo.min.js",
      "mux_url": "https://f.vimeocdn.com/p/external/mux.js",
      "vuid_js": "https://f.vimeocdn.com/js_opt/modules/utils/vuid.min.js",
      "chromeless_js": "https://f.vimeocdn.com/p/2.75.6/js/chromeless.js",
      "moog_js": "https://f.vimeocdn.com/p/2.75.6/js/moogaloop.js",
      "zeroclip_js": "https://f.vimeocdn.com/p/external/zeroclipboard/ZeroClipboard-patch.js",
      "css": "https://f.vimeocdn.com/p/2.75.6/css/player.css"
    },
    "signature": "8544b7e2ca11afdca19cef76f57fed72",
    "flags": {
      "dnt": 0,
      "preload_video": "metadata_on_hover",
      "plays": 1,
      "webp": 0,
      "flash_hls": 1,
      "log_to_es": 0,
      "partials": 1,
      "autohide_controls": 0
    },
    "country": "IN"
  },
  "player_url": "player.vimeo.com",
  "video": {
    "version": {
      "current": null,
      "available": [
        {
          "is_current": 1,
          "id": 20743507,
          "file_id": 1047687416
        }
      ]
    },
    "height": 1080,
    "duration": 543,
    "thumbs": {
      "640": "https://i.vimeocdn.com/video/712935666_640.jpg",
      "960": "https://i.vimeocdn.com/video/712935666_960.jpg",
      "1280": "https://i.vimeocdn.com/video/712935666_1280.jpg",
      "base": "https://i.vimeocdn.com/video/712935666"
    },
    "owner": {
      "account_type": "pro",
      "name": "You Are a CEO",
      "img": "https://i.vimeocdn.com/portrait/26028985_60x60.jpg",
      "url": "https://vimeo.com/user19222589",
      "img_2x": "https://i.vimeocdn.com/portrait/26028985_120x120.jpg",
      "id": 19222589
    },
    "file_codecs": {
      "hevc": {
        "hdr": [],
        "sdr": []
      },
      "avc": [
        1047687611,
        1047687609,
        1047687607,
        1047687604
      ]
    },
    "id": 279620511,
    "embed_code": "<iframe src=\"https://player.vimeo.com/video/279620511\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen></iframe>",
    "title": "DRAFT- MINTSHOW TO UPLIFT",
    "share_url": "https://vimeo.com/279620511",
    "width": 1920,
    "embed_permission": "public",
    "fps": 30,
    "spatial": 0,
    "live_event": null,
    "allow_hd": 1,
    "hd": 1,
    "lang": null,
    "default_to_hd": 0,
    "url": null,
    "privacy": "unlisted",
    "unlisted_hash": "1795b097a5"
  },
  "user": {
    "vimeo_api_interaction_tokens": null,
    "liked": 0,
    "account_type": "none",
    "vimeo_api_client_token": null,
    "progress": 0,
    "owner": 0,
    "watch_later": 0,
    "logged_in": 0,
    "id": 0,
    "mod": 0
  },
  "embed": {
    "autopause": 1,
    "playsinline": 1,
    "settings": {
      "fullscreen": 1,
      "byline": 1,
      "like": 1,
      "playbar": 1,
      "title": 1,
      "color": 0,
      "branding": 1,
      "watch_later": 1,
      "share": 0,
      "scaling": 1,
      "spatial_compass": 1,
      "collections": 0,
      "info_on_pause": 0,
      "portrait": 1,
      "logo": 1,
      "embed": 1,
      "badge": 0,
      "spatial_label": 1,
      "speed": 0,
      "volume": 1
    },
    "color": "00adef",
    "on_site": 0,
    "app_id": "",
    "muted": 0,
    "dnt": 0,
    "player_id": "",
    "api": 3,
    "editor": false,
    "context": "embed.main",
    "time": 0,
    "outro": "videos",
    "log_plays": 1,
    "quality": null,
    "transparent": 1,
    "loop": 0,
    "autoplay": 0
  },
  "view": 1,
  "vimeo_url": "vimeo.com"
}
person Lovekush Vishwakarma    schedule 14.07.2018

Изхождайки от това, което беше коментирал Андрю Ф, написах този прост Javascript, за да се справя с този процес:

function loadVimeoVideo(id) {
    'use strict';
    var req, json, url;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        req = new XMLHttpRequest();
    } else { // code for IE6, IE5
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange = function () {
        if (req.readyState === 4 && req.status === 200) {
            json = JSON.parse(req.responseText);
            url = json.request.files.h264.sd.url;
            document.getElementById(id).getElementsByTagName("source")[0].setAttribute("src",url);
        }
    };
    req.open("GET", ("https://player.vimeo.com/video/").concat(id, "/config"), true);
    req.send();
}

Настройката в Html изглежда така:

<video id="YOURVIMEOIDHERE" controls loop muted preload="auto" autoplay="false" onloadeddata="loadVimeoVideo('YOURVIMEOIDHERE')">
    <source src="" type="video/mp4" />
    Your browser does not support the video tag, which was introduced in html5.
</video>

Редактиране: Просто ще го кажа, не забравяйте да замените YOURVIMEOIDHERE с идентификатора на видеоклипа си във Vimeo.

person Community    schedule 23.06.2015
comment
това не работи за мен поради Access-Control-Allow-Origin. - person klanm; 05.08.2015

За да пуснете Vimeo Video от iframe url, използвайте този код. Работи добре.

  1. Използвайте оформление с уеб изглед и оформление на рамката
  2. Създайте персонализиран WebViewClient както за ChromeClient, така и за WebViewClient и пуснете видео с помощта на Loadurl или LoadBaseUrl.

    {
    
    enter code here
    
        webView = (WebView) findViewById(R.id.web_details);
        mWebViewClient = new myWebViewClient();
        webView.setWebViewClient(mWebViewClient);
        mWebChromeClient = new myWebChromeClient();
        webView.setWebChromeClient(mWebChromeClient);     
        WebSetting settings = webView.getSetting();
        settings.setJavaScriptEnabled(true);
        settings.setDomStorageEnabled(true);
        settings.setMinimumFontSize(10);
        settings.setLoadWithOverviewMode(true);
        settings.setUseWideViewPort(true);
        settings.setBuiltInZoomControls(true);
        settings.setDisplayZoomControls(false);
        webView.setVerticalScrollBarEnabled(false);
        vUrl = changedHeaderHtml(getIntent().getStringExtra("videoUrl"));
        webView.loadDataWithBaseURL(null, vUrl, "text/html", "UTF-8", null);
    }
    public static String changedHeaderHtml(String strUrl) {
        return "<head><meta name=\"viewport\" content=\"width=device-width, user-scalable=yes\" /></head>" + strUrl + "</body></html>";
    }
    public boolean inCustomView() {
        return (mCustomView != null);
    }
    
    public void hideCustomView() {
        mWebChromeClient.onHideCustomView();
    }
    
    @Override
    protected void onPause() {
        super.onPause();    //To change body of overridden methods use File | Settings | File Templates.
        webView.onPause();
    }
    
    @Override
    protected void onResume() {
        super.onResume();    //To change body of overridden methods use File | Settings | File Templates.
        webView.onResume();
    }
    
    @Override
    protected void onStop() {
        super.onStop();    //To change body of overridden methods use File | Settings | File Templates.
        if (inCustomView()) {
            hideCustomView();
        }
    }
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
    
            if (inCustomView()) {
                hideCustomView();
                return true;
            }
    
            if ((mCustomView == null) && webView.canGoBack()) {
                webView.goBack();
                return true;
            }
        }
        return super.onKeyDown(keyCode, event);
     }
    
    class myWebChromeClient extends WebChromeClient {
        private Bitmap mDefaultVideoPoster;
        private View mVideoProgressView;
    
        @Override
     public void onShowCustomView(View view, int requestedOrientation,CustomViewCallback callback) {
            onShowCustomView(view, callback); //To change body of overridden methods use File | Settings | File Templates.
        }
    
        @Override
        public void onShowCustomView(View view,CustomViewCallback callback) {
    
        // if a view already exists then immediately terminate the new one
            if (mCustomView != null) {
                callback.onCustomViewHidden();
                return;
            }
            mCustomView = view;
            webView.setVisibility(View.GONE);
            customViewContainer.setVisibility(View.VISIBLE);
            customViewContainer.addView(view);
            customViewCallback = callback;
        }
    
        @Override
        public View getVideoLoadingProgressView() {
    
            if (mVideoProgressView == null) {
                LayoutInflater inflater = LayoutInflater.from(WebMainActivity.this);
                mVideoProgressView = inflater.inflate(R.layout.video_progress, null);
            }
            return mVideoProgressView;
        }
    
        @Override
        public void onHideCustomView() {
            super.onHideCustomView();    //To change body of overridden methods use File | Settings | File Templates.
            if (mCustomView == null)
                return;
    
            webView.setVisibility(View.VISIBLE);
            customViewContainer.setVisibility(View.GONE);
    
            // Hide the custom view.
            mCustomView.setVisibility(View.GONE);
    
            // Remove the custom view from its container.
            customViewContainer.removeView(mCustomView);
            customViewCallback.onCustomViewHidden();
    
            mCustomView = null;
        }
    }
    
    class myWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            url =vUrl;
    
            return super.shouldOverrideUrlLoading(view, url);  
        }
    }
    
    }
    
person Darshan Singh    schedule 23.09.2016
comment
не забелязахте ли, че опитах WebView решение, но не отговаря. въпросният? - person Andrew F; 23.09.2016
comment
да, но работи добре, ако намерите друг начин, моля, публикувайте тук - person Darshan Singh; 30.09.2016
comment
използването на webview не е добро решение за използване в приложението за Android. погледнете отговора за подробности. - person Andrew F; 30.09.2016