2011-05-31 169 views
1

當我在我的WebView按下ebay.com使用此代碼按鈕:按鈕的可能的WebView OnCreateWindow使彈出窗口(對話框樣式)?像Android瀏覽器

HTML:

input id="addPicturesBtn" name="addPicturesBtn" type="button" value="Add pictures" class="button" onclick="ebay.run(this.id,'onclick');return false;" onkeydown="ebay.run(this.id,'onkeydown');return false;" title="Add pictures" 

如果這個按鈕被按下我的web視圖裏面,它會發送新從我的webview到android瀏覽器的窗口。但是,如果從android瀏覽器內按下相同的按鈕,它會彈出這個很酷的對話框類型彈出窗口(見圖片)

我想打開eBay上的彈出式窗口,就像瀏覽器一樣,如果按下這個按鈕在我的webview中。這樣當用戶完成彈出窗口時,用戶可以關閉它,將它們返回到我的應用程序後面。

這可能嗎?

這是我到目前爲止有:

webChromeClient = new WebChromeClient() { 
    @Override 
    public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) { 
     WebView childView = new WebView(Ebay.this); 
     final WebSettings settings = childView.getSettings(); 
     settings.setJavaScriptEnabled(true); 
     childView.setWebChromeClient(this); 
     childView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
     WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; 
     transport.setWebView(childView); 
     resultMsg.sendToTarget(); 

    return true; 
    } 
     @Override 
     public boolean onJsAlert(WebView view, String url, String message, JsResult result) { 
      new AlertDialog.Builder(view.getContext()).setMessage(message).setCancelable(true).show(); 
      result.confirm(); 
      return true; 

     } 

我這麼想嗎?

下面是Android瀏覽器彈出的照片(我試圖讓我的web視圖從上ebay.com按鈕啓動):

popup

+0

你用自己的方法得到了多少?我目前嘗試同樣的事情。你現在的答案有點小,因爲他們認爲它是你自己的網站(eBay不是)。 – Nappy 2011-07-12 14:34:29

回答

2

使用JavaScript接口。結合JavaScript和Java和使自定義對話框中的java 起初,啓用JavaScript

webview.getSettings().setJavaScriptEnabled(true); 

在第二,你需要添加JavaScript接口

wv.addJavascriptInterface(new DemoJavaScriptInterface(), "js"); 

第三,負載網址;

webview.loadUrl("javascript:[javascript function name here]()"); 

這是給你一些代碼,希望這能幫助 https://github.com/scottagarman/Android-JavaScript-Interface-Example

代碼信用轉至所謂的「scottagarman」的開發商。

2

你可以做他的方式:

public void onCreate(Bundle savedInstanceState){ 
    .... 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.addJavascriptInterface(new MyJSInterface(), "myappname"); 
    webView.loadUrl("http://mysite.com/"); // or some local asset 
    .... 
} 

public class MyJSInterface{ 

.... 
public void popup(){ 

// AlterDialog etc. 

} 
.... 

} 


HTML from your website: 

window.onload = function(){ 
    window.myappname.popup(); 
} 

我希望這將是對您有用...

順便說一句,小心用2.3版本,它有一個相應的bug,只是FYI ))

相關問題