Интеграция комментариев Disqus в приложение для Android

#android #disqus

#Android #disqus

Вопрос:

Я создал приложение с помощью следующих ссылок, но когда я захожу в Disqus для ввода комментария, мне нужно обновить страницу, только тогда она показывает, что я вошел в систему, и тогда я могу ввести комментарий. Я использую фрагмент HTML, а не php. Ссылки, на которые я ссылаюсь, следующие:-

http://globeotter.com/blog/disqus-android-code/

http://globeotter.com/blog/disqus-login-and-logout/

Мой код приведен ниже:-

     Public class MainActivity extends Activity {
    WebView webDisqus;
    String sMyurl;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        String htmlComments = getHtmlComment("<MyWEBSITE_Disqus_ID>", "<MYWEBSITE_SHORTNAME>");
         sMyurl="MYWEBSITES_URL";
        webDisqus = (WebView) findViewById(R.id.disqus);
        // set up disqus
        WebSettings webSettings2 = webDisqus.getSettings();
        webSettings2.setJavaScriptEnabled(true);
        webSettings2.setBuiltInZoomControls(true);
        webDisqus.requestFocusFromTouch();
        webDisqus.setWebViewClient(new MyWebViewClient(htmlComments, "text/html", null, sMyurl));
        webDisqus.setWebChromeClient(new WebChromeClient());
        webDisqus.loadData(htmlComments, "text/html", null);
    }

        public String getHtmlComment(String idPost, String shortName) {
     return "<div id='disqus_thread'></div>"
  "<script type='text/javascript'>"
  "var disqus_identifier = '"
  idPost
  "';"
  "var disqus_shortname = '"
  shortName
  "';"
  " (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;"
  "dsq.src = 'http://'   disqus_shortname   '.disqus.com/embed.js';"
  "(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })();"
  "</script>";
}
}
  

И класс MyWebView выглядит следующим образом:-

`

  public class MyWebViewClient extends WebViewClient {`

    private String html_comments, sType, obj, sMyURL;


     public MyWebViewClient(String htmlComments, String string, String object, String URL) {
        // TODO Auto-generated constructor stub
         html_comments=htmlComments;
         sType=string;
         obj=object;
         sMyURL=URL;
    }
    @Override
     public void onPageStarted(WebView view, String url, Bitmap favicon) {
     Log.i("page started", url);
     }

    @Override
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
     Log.i("disqus error", "failed: "   failingUrl   ", error code: "   errorCode   " ["   description   "]");
     }

    public void onPageFinished(WebView view, String url) {
     if(url.indexOf("logout")>-1 || url.indexOf("disqus.com/next/login-success")>-1 ){
     view.loadData(html_comments, sType, obj);

     }
     if(url.indexOf("disqus.com/_ax/twitter/complete")>-1||url.indexOf("disqus.com/_ax/facebook/complete")>-1||url.indexOf("disqus.com/_ax/google/complete")>-1){
     view.loadData(html_comments, sType, obj);

     }
     if(url.indexOf(sMyURL "/login.php")>-1){
     view.loadData(html_comments,sType, obj);
    }
    }
    }`
  

Может кто-нибудь сказать мне, что мне делать, чтобы не обновлять страницу всякий раз, когда я захожу в систему и выхожу из Disqus через WebView моей активности.

Ответ №1:

Приведенный выше код хорошо работает на устройствах Android. Проблема возникает только в том случае, если мы запускаем его на эмуляторе, так как эмулятор работает медленно по сравнению с устройствами…