android - Links not working inside a WebView due to 'X-Frame-Options' set to 'SAMEORIGIN' -
i've got twitter timeline in webview displays well. followed this post guide. don't want entertain other options such twitter4j, although appreciate alternative.
my problem can't click links, pictures, or otherwise interact timeline other scrolling , down. following error. way around this?
05-29 19:09:10.887: i/chromium(13226): [info:console(0)] "refused display 'https://mobile.twitter.com/xxxxxxxx/status/yyyyyyyyyy/photo/1' in frame because set 'x-frame-options' 'sameorigin'.", source: https://twitter.com/xxxxxxxx/status/yyyyyyyyyy/photo/1 (0)
here's code:
// locate webview in fragment_twitter.xml webview tweetwebview = (webview) v.findviewbyid(r.id.tweetwebview); // settings webview tweetwebview.setbackgroundcolor(0); tweetwebview.getsettings().setjavascriptenabled(true); tweetwebview.getsettings().setdomstorageenabled(true); // load webview imageurl string timelinewidget = "<a class=\"twitter-timeline\" data-dnt=\"true\" href=\"https://twitter.com/xxxxxxxx\" data-widget-id=\"secretnumber\">tweets @xxxxxxxx</a><script>!function(d,s,id){var js,fjs=d.getelementsbytagname(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getelementbyid(id)){js=d.createelement(s);js.id=id;js.async=true;js.src=p+\"://platform.twitter.com/widgets.js\";fjs.parentnode.insertbefore(js,fjs);}}(document,\"script\",\"twitter-wjs\");</script>"; tweetwebview.loaddatawithbaseurl("https://twitter.com", timelinewidget, "text/html", "utf-8", null);
my problem same above requirement different, open link in embedded webview , open inside webview link in native browser,
mwebview.setwebviewclient(new webviewclient() { @override public webresourceresponse shouldinterceptrequest(webview view, string url) { logger.logd(tag, "url = " + url); if(mwebview.getvisibility() == view.visible && !homeactivity.ispaused()) { //open url in native browser intent = new intent(intent.action_view, uri.parse(url)); startactivity(i); return null; } return super.shouldinterceptrequest(view, url); } @override public void onpagefinished(webview view, string url) { //show embedded webview , hide progress bar mwebview.setvisibility(view.visible); mprogressbar.setvisibility(view.gone); super.onpagefinished(view, url); } });
in add boolean in activity
@override protected void onresume() { super.onresume(); ispaused = false; } @override protected void onpause() { super.onpause(); ispaused = true; }
i hope few changes lead solution, thanks
Comments
Post a Comment