2013-10-29 62 views
0

我有一個UIWebView,用於與外部庫(Gigya)一起登錄。 的JavaScript代碼如下所示:在UIWebView上使用JavaScript代碼去了其他頁面(關於:空白)

 window.onload = function() { 

      gigya.accounts.showScreenSet({ 
             screenSet: 'Login-web', 
             mobileScreenSet: 'testMobile', 
             deviceType: 'auto' 

             }); 
     } 


    **function DisplayEventMessage(eventObj) { 
     alert(eventObj.eventName + " event happened"); 
     window.location="callmycode:cmd=showAlert&var=myVar"; 
    } 

    gigya.socialize.addEventHandlers({ 
            onLogin:DisplayEventMessage, 
            onConnectionAdded:DisplayEventMessage, 
            onConnectionRemoved:DisplayEventMessage 
            } 
            );** 

代碼詢問的Gigya SDK這個網頁添加到他的代表; (gigya.socialize.addEventHandlers)。但是當有人登錄Facebook時,其在普通瀏覽器(about:blank)上打開新標籤,但在UIWebView中,它只是加載新網站,而不是標籤。所以,JavaScript代碼禁用,因爲該頁面不再存在。

即使頁面不存在,我仍然可以啓用此代碼嗎?

回答

0

(剛發佈的答案,如果有人需要這個幫助:)

答案很簡單,只需重定向到Safari瀏覽器。 我不能讓它與UIWebView一起使用。 示例代碼:

(Opening safari:) 
    -(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { 
    if (inType == UIWebViewNavigationTypeLinkClicked) { 
     (**here the link opening:**) 
     [[UIApplication sharedApplication] openURL:[inRequest URL]]; 
     return NO; 
    } 

    return YES; 
} 

(Some code in the site handling the redirect to the application) 
(JavaScript) 
window.location = "yourapp://<some information needed>"; 

我做到了,以另一種方式,我認出了開鏈接,並開始從的Gigya的SDK本地窗口登錄。

相關問題