2016-06-16 4 views
-1

자동 facebook 가입 그룹 앱을 만들고 있습니다. 이를 위해 나는 webview를 만들고이 webview에 특정 페이스 북 그룹 URL을로드합니다. 지금 내가 원하는 것은 Enter 키를 눌러 '그룹 가입'버튼이 자동이다 나는 스크립트를 만들어 웹뷰에서 실행 :안드로이드 WebView에서 Javascript를 실행할 수 없습니다

private class myWebViewClient extends WebViewClient { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     view.loadUrl("javascript:(function() {document.getElementsByClassName('bu bv bw').submit();})()"); 
    } 

문제는 아무 것도이 스크립트가 실행될 때, 나는이에 대한 많은 글을 통해 갈 일이 없다 하지만 그것을 얻을 수 없습니다 도와주세요! 두 번째, document.getElementsByClassName 배열을 반환합니다

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    AppEventsLogger.activateApp(this); 
    callbackManager = CallbackManager.Factory.create(); 
    setContentView(R.layout.activity_main); 
    name = (TextView) findViewById(R.id.name); 
    mywebView = (WebView) findViewById(R.id.webView); 
    loginButton = (LoginButton) findViewById(R.id.login_button); 
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      name.setText(
        "User ID: " 
          + loginResult.getAccessToken().getUserId() 
          + "\n" + 
          "Auth Token: " 
          + loginResult.getAccessToken().getToken() 
      ); 


      WebView ourBrow; 
      ourBrow = (WebView) findViewById(R.id.webView); 
      // cancel the web intent that default in android setting 
      ourBrow.setWebViewClient(new myWebViewClient()); 
      String url = "https://m.facebook.com/groups/819387484767105"; 

      // webView settings 
      ourBrow.getSettings().setJavaScriptEnabled(true); 
      ourBrow.getSettings().setLoadWithOverviewMode(true); 
      ourBrow.getSettings().setUseWideViewPort(true); 
      ourBrow.getSettings().setDomStorageEnabled(true); 
      ourBrow.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
      ourBrow.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"); 
      ourBrow.loadUrl(url); 
     } 
+0

그룹 가입을위한 API가 없습니다. 페이스 북은 당신이하고있는 일을 허용하지 않는다. – WizKid

+0

예, 위즈 키드 (WizKid)는 그룹 가입을위한 API가 없다는 것을 알았지 만 자바 스크립트 삽입을 사용하여 자동으로 '가입 버튼'을 누르면 할 수있는 플러그인을 보았다. android webview를 사용하여 동일하게하십시오. 그걸 도와 주실 수 있습니까? – ShivamGarg

+0

Facebook은 기능을 원하지 않기 때문에 API가 없습니다. 다른 애플 리케이션에 대해 이야기 해 주시면보고 드리겠습니다. – WizKid

답변

0

당신은 당신이 정말로 런타임의 'BU BV BW'요소를 가지고 있는지 확인할 수 있습니다, 그래서 당신은 할 수 있습니다 는 또한 어떻게 설정 웹보기의 코드를 게시하고 또한 document.getElementsByClassName ('bu bv bw') [0] .submit()을 시도하십시오.

+0

Hello Day Wong, 'bu b bw'가 런타임에 무언가를 반환했는지 여부를 어떻게 확인할 수 있습니까? – ShivamGarg

+0

console.log (document.getElementsByClassName ('bu bv bw'). 길이)가해야하고,'https : // m.facebook.com/groups/819387484767105'가 가고자하는 웹 페이지라면 테스트 할 수 있습니다. 크롬 브라우저 콘솔에. 나는'document.getElementsByClassName ('bu bv bw')'로'https : // m.facebook.com/groups/819387484767105'을 테스트했다. 객체는 @ShivamGarg –

+0

당신의 도움에 감사한다. 'bu bv bw'대신 '그룹 가입'버튼을 눌러주세요. – ShivamGarg

관련 문제