2015-08-14 6 views
0

У меня есть следующий WebView скрипт:Инъекционное JavaScript в WebView Android

Этот сценарий загрузки JavaScript и URL сайта, когда приложение обнаруживает фразу access_token он должен перенаправить на другую страницу с данными из access_token , например:

@Override 
 
     protected void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
      setContentView(R.layout.activity_homepage); 
 
      mWebView = (WebView) findViewById(R.id.activity_main_webview); 
 
      // Enable Javascript 
 
      WebSettings webSettings = mWebView.getSettings(); 
 
      webSettings.setJavaScriptEnabled(true); 
 
    
 
     String javascriptCodeUrl= "javascript:var token = \n"+ 
 
     "top.location.href.split('access_token=')[1]; \n"+ 
 
     "if (token) { \n"+ 
 
     "top.location.href = 'http://example.com/?user=' + token;}"; 
 

 
        mWebView.loadUrl(javascriptCodeUrl); 
 

 
      mWebView.loadUrl("http://default-webpage.com"); 
 
      // Force links and redirects to open in the WebView instead of in a browser 
 
      mWebView.setWebViewClient(new WebViewClient()); 
 
     }

ответ

0

Вы контролировать URL-адресов в методе shouldOverrideURL. Нет необходимости использовать Javascript-инъекции. Это можно сделать на Java.

Смежные вопросы