ваша функция щелчка не работает, потому что jQuery работает на стороне клиента и php работает на стороне сервера , поэтому при выполнении скрипта он не найдет конкретный идентификатор, потому что таблица рендеринг через php.
Это делается делегированием событий. Событие будет привязано к элементу класса-оболочки, но будет делегировано элементу класса-селектора. Вот как это работает.
$('.wrapper-class').on("click", '.selector-class', function() {
// Your code here
});
Примечание: элемент класса-обертки может быть чем угодно. документ, тело или ваша обертка. Оболочка уже должна существовать.
Я предполагаю, но если вы хотите, чтобы произошло фактическое рукопожатие, вы должны сообщить Android о вашем сертификате. Если вы хотите просто принять что бы то ни было, используйте этот псевдокод, чтобы получить то, что вам нужно, с помощью HTTP-клиента Apache:
SchemeRegistry schemeRegistry = new SchemeRegistry ();
schemeRegistry.register (new Scheme ("http",
PlainSocketFactory.getSocketFactory (), 80));
schemeRegistry.register (new Scheme ("https",
new CustomSSLSocketFactory (), 443));
ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager (
params, schemeRegistry);
return new DefaultHttpClient (cm, params);
CustomSSLSocketFactory:
public class CustomSSLSocketFactory extends org.apache.http.conn.ssl.SSLSocketFactory
{
private SSLSocketFactory FACTORY = HttpsURLConnection.getDefaultSSLSocketFactory ();
public CustomSSLSocketFactory ()
{
super(null);
try
{
SSLContext context = SSLContext.getInstance ("TLS");
TrustManager[] tm = new TrustManager[] { new FullX509TrustManager () };
context.init (null, tm, new SecureRandom ());
FACTORY = context.getSocketFactory ();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public Socket createSocket() throws IOException
{
return FACTORY.createSocket();
}
// TODO: add other methods like createSocket() and getDefaultCipherSuites().
// Hint: they all just make a call to member FACTORY
}
FullX509TrustManager - это класс, который реализует javax.net.ssl.X509TrustManager, но все же ни один из методов на самом деле не выполняет никакой работы, получите образец здесь .
Удачи!
Вероятно, можно попробовать что-то вроде этого. Это помогло мне
SslContextFactory sec = new SslContextFactory();
sec.setValidateCerts(false);
sec.setTrustAll(true);
org.eclipse.jetty.websocket.client.WebSocketClient client = new WebSocketClient(sec);
Я не знаю особенностей Android для ssl-сертификатов, но было бы логично, что Android сразу же не примет самоподписанный ssl-сертификат. Я нашел этот пост на форумах Android, который, похоже, посвящен той же проблеме: http://androidforums.com/android-applications/950-imap-self-signed-ssl-certificates.html
Это то, что я делаю. Он просто больше не проверяет сертификат.
// always verify the host - dont check for certificate
final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
/**
* Trust every server - dont check for any certificate
*/
private static void trustAllHosts() {
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[] {};
}
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
} };
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection
.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
}
и
HttpURLConnection http = null;
if (url.getProtocol().toLowerCase().equals("https")) {
trustAllHosts();
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
https.setHostnameVerifier(DO_NOT_VERIFY);
http = https;
} else {
http = (HttpURLConnection) url.openConnection();
}