Popup window in android WebView -


i using webview open link in app. link works fine in webview when clicked on item of webview(link opened) open popup app got crashed. , gives me error .

03-24 16:40:10.680: w/system.err(5798): android.view.windowmanager$badtokenexception: unable add window -- token android.app.localactivitymanager$localactivityrecord@421e0760 not valid; activity running? 03-24 16:40:10.680: w/system.err(5798):     @ android.view.viewrootimpl.setview(viewrootimpl.java:536) 03-24 16:40:10.680: w/system.err(5798):     @ android.view.windowmanagerglobal.addview(windowmanagerglobal.java:259) 03-24 16:40:10.680: w/system.err(5798):     @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:69) 03-24 16:40:10.680: w/system.err(5798):     @ android.app.dialog.show(dialog.java:286) 03-24 16:40:10.690: w/system.err(5798):     @ com.android.org.chromium.content.browser.input.selectpopupdialog.show(selectpopupdialog.java:217) 03-24 16:40:10.690: w/system.err(5798):     @ com.android.org.chromium.content.browser.contentviewcore.showselectpopup(contentviewcore.java:2413) 03-24 16:40:10.690: w/system.err(5798):     @ com.android.org.chromium.base.systemmessagehandler.nativedorunlooponce(native method) 03-24 16:40:10.690: w/system.err(5798):     @ com.android.org.chromium.base.systemmessagehandler.handlemessage(systemmessagehandler.java:27) 03-24 16:40:10.690: w/system.err(5798):     @ android.os.handler.dispatchmessage(handler.java:102) 03-24 16:40:10.690: w/system.err(5798):     @ android.os.looper.loop(looper.java:136) 03-24 16:40:10.690: w/system.err(5798):     @ android.app.activitythread.main(activitythread.java:5017) 03-24 16:40:10.690: w/system.err(5798):     @ java.lang.reflect.method.invokenative(native method) 03-24 16:40:10.690: w/system.err(5798):     @ java.lang.reflect.method.invoke(method.java:515) 03-24 16:40:10.690: w/system.err(5798):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 03-24 16:40:10.690: w/system.err(5798):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 03-24 16:40:10.690: w/system.err(5798):     @ dalvik.system.nativestart.main(native method) 

i opening webview this.

intent = new intent(mymainactivity.this,webviewactivity.class);                     it.putextra("url", url);                     parentactivity parent = (parentactivity) getparent();                     parent.startchildactivity("webviewactivity", it); 

my webviewactivity code this.

string url = in.getstringextra("url");          webview.getsettings().setjavascriptenabled(true);         webview.getsettings().setbuiltinzoomcontrols(true);         webview.getsettings().setloadwithoverviewmode(true);         webview.getsettings().setusewideviewport(true);          webview.getsettings().setjavascriptcanopenwindowsautomatically(true);         webview.setwebviewclient(client);          webview.loadurl(url); 

may know correct way achieve objective?

you can add webview programmatically instead of layout file.

  1. replace webview linearlayout (or appropriate) , instance of layout.

  2. create new webview in activity dynamically.

code below:

    @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_webview);     urls = getintent().getstringextra("key_url");     linearweb = (linearlayout) findviewbyid(r.id.webviewlayout);     webview = new webview(getparent());     webview.getsettings().setjavascriptenabled(true);     webview.getsettings().setsupportzoom(true);     webview.getsettings().setdomstorageenabled(true);     progressbar.setvisibility(view.gone);     linearweb.addview(webview);     showbox(); }  public void showwebview() {     if (!((activity) getparent()).isfinishing()) {         setupaction();     } }  private void setupaction() {      if (!textutils.isempty(urls)) {          webview.loadurl(urls);         this.webview.setwebviewclient(new webviewclient() {             @override             public boolean shouldoverrideurlloading(webview view, string url) {                 view.loadurl(url);                 return true;             }         });          this.webview.setwebviewclient(new webviewclient() {              @override             public void onpagestarted(webview view, string url,                     bitmap favicon) {                  progressbar.setvisibility(view.visible);              }              public void onreceivederror(webview view, int errorcode,                     string description, string failingurl) {                 progressbar.setvisibility(view.gone);             }              @override             public void onpagefinished(webview view, string url) {                 progressbar.setvisibility(view.gone);              }         });     } } 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -