.class public Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient; .super Landroid/webkit/WebChromeClient; .source "BridgeWebChromeClient.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient$JavaScriptTask; } .end annotation # static fields .field private static final TAG:Ljava/lang/String; = "BridgeWebChromeClient" .field private static evaluateJavascriptSupported:Z # direct methods .method static constructor ()V .locals 2 .line 26 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x13 if-lt v0, v1, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 sput-boolean v0, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->evaluateJavascriptSupported:Z return-void .end method .method public constructor ()V .locals 0 .line 22 invoke-direct {p0}, Landroid/webkit/WebChromeClient;->()V return-void .end method .method static synthetic access$000()Z .locals 1 .line 22 sget-boolean v0, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->evaluateJavascriptSupported:Z return v0 .end method .method private handleWindVaneNoHandler(Landroid/webkit/WebView;Ljava/lang/String;)V .locals 3 const/16 v0, 0x3a const/16 v1, 0x9 .line 131 :try_start_0 invoke-virtual {p2, v0, v1}, Ljava/lang/String;->indexOf(II)I move-result v0 const/16 v1, 0x2f .line 132 invoke-virtual {p2, v1, v0}, Ljava/lang/String;->indexOf(II)I move-result v1 const/4 v2, 0x1 add-int/2addr v0, v2 .line 133 invoke-virtual {p2, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p2 const-string v0, "window.WindVane&&window.WindVane.onFailure(%s,\'{\"ret\":\"HY_NO_HANDLER\"\');" .line 134 new-array v1, v2, [Ljava/lang/Object; const/4 v2, 0x0 aput-object p2, v1, v2 invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p2 .line 136 new-instance v0, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient$JavaScriptTask; invoke-direct {v0, p1, p2}, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient$JavaScriptTask;->(Landroid/webkit/WebView;Ljava/lang/String;)V invoke-virtual {p1, v0}, Landroid/webkit/WebView;->post(Ljava/lang/Runnable;)Z :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception p1 const-string p2, "ui" .line 138 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "fail to handler windvane request, the error message is " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-static {p2, v0, p1}, Lcom/ali/auth/third/core/trace/SDKLogger;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V :goto_0 return-void .end method .method private parseMessage(Ljava/lang/String;)Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal; .locals 5 .line 107 invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object v0 .line 108 invoke-virtual {v0}, Landroid/net/Uri;->getHost()Ljava/lang/String; move-result-object v1 .line 109 invoke-virtual {v0}, Landroid/net/Uri;->getPort()I move-result v2 .line 110 invoke-virtual {v0}, Landroid/net/Uri;->getLastPathSegment()Ljava/lang/String; move-result-object v3 .line 111 invoke-virtual {v0}, Landroid/net/Uri;->getQuery()Ljava/lang/String; const-string v0, "?" .line 112 invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v0 const/4 v4, -0x1 if-ne v0, v4, :cond_0 const/4 p1, 0x0 goto :goto_0 :cond_0 add-int/lit8 v0, v0, 0x1 .line 116 invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p1 .line 119 :goto_0 new-instance v0, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal; invoke-direct {v0}, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->()V .line 120 iput-object v3, v0, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->methodName:Ljava/lang/String; .line 121 iput-object v1, v0, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->objName:Ljava/lang/String; .line 122 iput-object p1, v0, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->param:Ljava/lang/String; .line 123 iput v2, v0, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->requestId:I return-object v0 .end method # virtual methods .method public onJsAlert(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsResult;)Z .locals 0 const/4 p1, 0x0 return p1 .end method .method public final onJsPrompt(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsPromptResult;)Z .locals 6 const/4 p2, 0x0 if-nez p4, :cond_0 return p2 :cond_0 const-string v0, "wv_hybrid:" .line 35 invoke-virtual {p4, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_1 .line 36 invoke-direct {p0, p1, p3}, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->handleWindVaneNoHandler(Landroid/webkit/WebView;Ljava/lang/String;)V const-string p1, "" .line 37 invoke-virtual {p5, p1}, Landroid/webkit/JsPromptResult;->confirm(Ljava/lang/String;)V return v1 :cond_1 const-string v0, "hv_hybrid:" .line 41 invoke-static {p4, v0}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z move-result p4 if-nez p4, :cond_2 return p2 .line 45 :cond_2 instance-of p4, p1, Lcom/ali/auth/third/ui/webview/AuthWebView; if-nez p4, :cond_3 return p2 .line 49 :cond_3 check-cast p1, Lcom/ali/auth/third/ui/webview/AuthWebView; .line 50 invoke-direct {p0, p3}, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->parseMessage(Ljava/lang/String;)Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal; move-result-object p3 .line 51 new-instance p4, Lcom/ali/auth/third/ui/context/BridgeCallbackContext; invoke-direct {p4}, Lcom/ali/auth/third/ui/context/BridgeCallbackContext;->()V .line 52 iget v0, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->requestId:I iput v0, p4, Lcom/ali/auth/third/ui/context/BridgeCallbackContext;->requestId:I .line 53 iput-object p1, p4, Lcom/ali/auth/third/ui/context/BridgeCallbackContext;->webView:Landroid/webkit/WebView; .line 55 iget-object v0, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->objName:Ljava/lang/String; invoke-virtual {p1, v0}, Lcom/ali/auth/third/ui/webview/AuthWebView;->getBridgeObj(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 if-nez p1, :cond_4 const/16 p1, 0x2710 .line 57 new-array v0, v1, [Ljava/lang/Object; iget-object p3, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->objName:Ljava/lang/String; aput-object p3, v0, p2 invoke-static {p1, v0}, Lcom/ali/auth/third/core/message/MessageUtils;->createMessage(I[Ljava/lang/Object;)Lcom/ali/auth/third/core/message/Message; move-result-object p1 .line 58 sget-object p2, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->TAG:Ljava/lang/String; invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p3 invoke-static {p2, p3}, Lcom/ali/auth/third/core/trace/SDKLogger;->e(Ljava/lang/String;Ljava/lang/String;)V .line 59 iget p2, p1, Lcom/ali/auth/third/core/message/Message;->code:I iget-object p1, p1, Lcom/ali/auth/third/core/message/Message;->message:Ljava/lang/String; invoke-virtual {p4, p2, p1}, Lcom/ali/auth/third/ui/context/BridgeCallbackContext;->onFailure(ILjava/lang/String;)V const-string p1, "" .line 60 invoke-virtual {p5, p1}, Landroid/webkit/JsPromptResult;->confirm(Ljava/lang/String;)V return v1 :cond_4 const/4 v0, 0x2 .line 66 :try_start_0 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v2 iget-object v3, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->methodName:Ljava/lang/String; new-array v4, v0, [Ljava/lang/Class; const-class v5, Lcom/ali/auth/third/ui/context/BridgeCallbackContext; aput-object v5, v4, p2 const-class v5, Ljava/lang/String; aput-object v5, v4, v1 invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 :try_end_0 .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_1 .line 75 const-class v3, Lcom/ali/auth/third/ui/webview/BridgeMethod; invoke-virtual {v2, v3}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z move-result v3 if-eqz v3, :cond_6 .line 78 :try_start_1 new-array v0, v0, [Ljava/lang/Object; aput-object p4, v0, p2 iget-object v3, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->param:Ljava/lang/String; invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v3 if-eqz v3, :cond_5 const-string p3, "{}" goto :goto_0 :cond_5 iget-object p3, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->param:Ljava/lang/String; :goto_0 aput-object p3, v0, v1 invoke-virtual {v2, p1, v0}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 goto :goto_1 :catch_0 move-exception p1 const/16 p3, 0x271a .line 80 new-array v0, v1, [Ljava/lang/Object; invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object v2 aput-object v2, v0, p2 invoke-static {p3, v0}, Lcom/ali/auth/third/core/message/MessageUtils;->createMessage(I[Ljava/lang/Object;)Lcom/ali/auth/third/core/message/Message; move-result-object p2 .line 82 sget-object p3, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->TAG:Ljava/lang/String; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v2 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, "," invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1}, Ljava/lang/Exception;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {p3, p1}, Lcom/ali/auth/third/core/trace/SDKLogger;->e(Ljava/lang/String;Ljava/lang/String;)V .line 84 iget p1, p2, Lcom/ali/auth/third/core/message/Message;->code:I iget-object p2, p2, Lcom/ali/auth/third/core/message/Message;->message:Ljava/lang/String; invoke-virtual {p4, p1, p2}, Lcom/ali/auth/third/ui/context/BridgeCallbackContext;->onFailure(ILjava/lang/String;)V goto :goto_1 :cond_6 const/16 p1, 0x3b8 .line 87 new-array v0, v0, [Ljava/lang/Object; iget-object v2, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->objName:Ljava/lang/String; aput-object v2, v0, p2 iget-object p2, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->methodName:Ljava/lang/String; aput-object p2, v0, v1 invoke-static {p1, v0}, Lcom/ali/auth/third/core/message/MessageUtils;->createMessage(I[Ljava/lang/Object;)Lcom/ali/auth/third/core/message/Message; move-result-object p1 .line 88 sget-object p2, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->TAG:Ljava/lang/String; invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p3 invoke-static {p2, p3}, Lcom/ali/auth/third/core/trace/SDKLogger;->e(Ljava/lang/String;Ljava/lang/String;)V .line 89 iget p2, p1, Lcom/ali/auth/third/core/message/Message;->code:I iget-object p1, p1, Lcom/ali/auth/third/core/message/Message;->message:Ljava/lang/String; invoke-virtual {p4, p2, p1}, Lcom/ali/auth/third/ui/context/BridgeCallbackContext;->onFailure(ILjava/lang/String;)V :goto_1 const-string p1, "" .line 92 invoke-virtual {p5, p1}, Landroid/webkit/JsPromptResult;->confirm(Ljava/lang/String;)V return v1 :catch_1 move-exception p1 const/16 v2, 0x3b7 .line 68 new-array v0, v0, [Ljava/lang/Object; iget-object v3, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->objName:Ljava/lang/String; aput-object v3, v0, p2 iget-object p2, p3, Lcom/ali/auth/third/ui/webview/HavanaBridgeProtocal;->methodName:Ljava/lang/String; aput-object p2, v0, v1 invoke-static {v2, v0}, Lcom/ali/auth/third/core/message/MessageUtils;->createMessage(I[Ljava/lang/Object;)Lcom/ali/auth/third/core/message/Message; move-result-object p2 .line 69 sget-object p3, Lcom/ali/auth/third/ui/webview/BridgeWebChromeClient;->TAG:Ljava/lang/String; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v2, "," invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1}, Ljava/lang/NoSuchMethodException;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {p3, p1}, Lcom/ali/auth/third/core/trace/SDKLogger;->e(Ljava/lang/String;Ljava/lang/String;)V .line 70 iget p1, p2, Lcom/ali/auth/third/core/message/Message;->code:I iget-object p2, p2, Lcom/ali/auth/third/core/message/Message;->message:Ljava/lang/String; invoke-virtual {p4, p1, p2}, Lcom/ali/auth/third/ui/context/BridgeCallbackContext;->onFailure(ILjava/lang/String;)V const-string p1, "" .line 71 invoke-virtual {p5, p1}, Landroid/webkit/JsPromptResult;->confirm(Ljava/lang/String;)V return v1 .end method