Когда я нажимаю кнопку с этим кодом на ebay.com в своем веб-просмотре:
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"
Если эта кнопка нажата внутри моего веб-браузера, она отправляет новое окно из моего веб-браузера в браузер Android. Но если одна и та же кнопка нажата из браузера android, всплывает всплывающее окно этого прохладного диалогового окна (см. Рисунок).
Я хотел бы открыть всплывающее окно стиля на eBay, как это делает браузер, если эта кнопка нажата внутри моего веб-браузера. Чтобы пользователь мог закрывать его, чтобы вернуть их в мое приложение за ним, когда они сделаны со всплывающим окном.
Возможно ли это?
Вот что я до сих пор:
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 (что я пытаюсь запустить мой веб-просмотр с кнопки на ebay.com):
Вы можете сделать это по-своему:
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, у нее была соответствующая ошибка только FYI))Использовать интерфейс javascript. Объедините javascript с java и создайте пользовательский диалог в java Сначала включите javascript
webview.getSettings().setJavaScriptEnabled(true);
Во-вторых, вам нужно добавить интерфейс javascript
wv.addJavascriptInterface(new DemoJavaScriptInterface(), "js");
И в-третьих, load url;
webview.loadUrl("javascript:[javascript function name here]()");
Вот вам какой-то код, надеюсь, это поможет https://github.com/scottagarman/Android-JavaScript-Interface-Example
Кредит кода передается разработчику под названием "scottagarman".