iscroll link issues - iscroll4

I'm making my first mobile app, and have a weird issue.
When the app is launched regularly through safari, obviously the links work as if any other regular HTML links. When I add the webapp to my home screen (to get the full effect, button, splash, and get rid of the safari controls) then I have a problem where whenever a link is clicked it closes the webapp and relaunches in normal safari.

That's exactly how links work. It has nothing to do with iScroll. If you want to stay within the web app, you need to load the pages with Ajax instead.
Since you're developing for a mobile browser, you probably don't have to worry much about Ajax compatibility; you can use XMLHttpRequest to load your pages.

I also found this solution (sorry, i couldn't find url of the original post)
var a=document.getElementsByTagName("a");
for(var i=0;i<a.length;i++)
{
a[i].onclick=function()
{
window.location=this.getAttribute("href");
return false
}
}
...this "hack" works for me. Hope it helps!

Related

Scraping an Angular website with selenium and C# returns the angular script, not the rendered web page

This seems to be by design as far as I can tell. Selenium can see the initially loaded HTML, but not the HTML after it's been massaged. I've tried IE, Chrome and PhantomJS and they all show the same behavior. So does the built-in Chrome debugger, until you inspect an element on the page, you can't query any of the rendered HTML.
I'm looking for any suggestions about how to scrape the web page. The only option I see right now is finding the chrome process, triggering the inspector, clicking inside, then running the Javascript. Needless to say, this sounds fragile.
I also haven't been able to find anything on capturing the Ajax calls from selenium so I can make them and capture the JSON. When tried copy / paste from the chrome network tab into selenium I got a missing application block message.
Does anyone have any other advice?
Since I can replicate the issue in the chrome debugger, I don't see posting code as useful. It looks like a design decision.
Ralph
Sadly, I wasn't able to do things in a straightforward way. Instead, I used Selenium to do the login and navigate to the page, then use windows API calls to click inside the window send ^a^c to copy the data and an absolute location to click on the button to go to the next page.
The site is set up so that ^a^c copies the raw data for this site. I don't know if that's standard for Angular or not.
Fragile, but it works.

High Sierra WebView blocks anchor tag navigation

I have a Mac app that displays info in a WebView. Quite an old app now and in Objective-C which I am rapidly forgetting.
The WebView contains anchor tags to allow navigation within the pages, both by clicking on links in the page displayed, or by clicking tabs in the UI which send Javascript to the WebView. In High Sierra this no longer works although it displays no error.
It appears that I need to implement isKeyExcludedFromWebScript: but my attempts to do so have failed.
Do I need to sub-class WebView? Putting isKeyExcludedFromWebScript: and isSelectorExcludedFromWebScript: in the View Controller containing the WebView doesn't work - they never get called.
If anyone has any advice or examples, I would be most grateful.
I am afraid that the answer will be to upgrade the app to use WKWebView but I was hoping for a quick work-around until I get time to do that.
Answering my own question here as I have worked out a solution.
The problem was that I was loading an HTML string into the WebView and when I tried to use internal navigation links, it didn't have a base URL to use as a prefix and so the anchor navigation never worked.
It used to work, prior to High Sierra, so there must be something new about how WebViews operate.
The solution was to save the HTML string to a temporary file and have the WebView load that file's URL instead of loading the string directly.
This applies to both WebView and WKWebView.

WebKit shell browser for internal web application

I am creating an in-house web application that I want to run in a WebKit shell browser on the Mac. I searched and came up empty. Basically, I want the site rendered and shown in a window with no chrome for navigating to other pages, bookmarks, etc. Seems to me that there should be a relatively easy way to get something like that up and running in Xcode, but alas I don't know how. The more barebones the better. Anybody know the answer?
Not sure if this is what you're looking for, but you could use a WebView. The content is rendered by Safari/WebKit.
As for chrome, if you just put the view, that's all you'll have. You can shape the rest of the User Interface however you'd like.
Apple's documentation has a couple of examples using WebView... Should this solve your problem.
Did you take a look at the phonegap mac project.
Its a full screen webkit without any chrome in which you can put your html / css / javascript to run:
https://github.com/callback/callback-mac

strange behaviour with facebook page tab

i noticed a strange behaviour of facebook page tab applications, using internet explorer (i tested this only on ie8... with other browser this problem is not present).
If i put javascript code, or background sound in my application, when i goes out from page tab, my application is still running (for example sounds, or javascript activity)...
To show you the issue, i created a page....
Log in into facebook and goes to this page.
http://www.facebook.com/apps/application.php?id=252545344807399&sk=app_252545344807399
Don't click like button or anything... you can see a javascript alert each 5 seconds...
next, click on the top facebook logo. You will be redirected to your facebook home, but the url has an hash symbol, because it loads content in ajax.
Wait 5 seconds and tell me if you are still receiving javascript alert from my application in background.
Tell me please if you experience this problem.
Thanks in advance.
Giuseppe
(sorry for bad english)
.

iscroll link ajax

I've been at this for a few hours so I hope someone can help me with this and not just tell me to GOOGLE it.
I'm using iscroll because of its great features of fixed header/footer.
I have links in the footer. When in normal safari, it all works fine. When the webapp is saved to the home screen, and then launched, after a link is clicked they close the webapp and launch safari.
I've tried AJAX with no good luck.
Can someone please help.
Try using relative links rather than absolute links.
for example use links such as
/link/to/page or link/to/page
rather than
http://domainname.com/link/to/page
or
http://www.domainname.com/link/to/page

Resources