I just did a pull request to remove addWhiteList from Android. If we
are all in a agreement that it should be removed on our Monday call I
will merge the request.

https://github.com/callback/callback-android/pull/41

Also, for anything that isn't implemented on iOS do you thing we
should have a no op function in the JavaScript so we won't run into
errors when people port the code from platform to platform?

Simon Mac Donald
http://hi.im/simonmacdonald



On Fri, Nov 25, 2011 at 5:07 PM, Shazron <shaz...@gmail.com> wrote:
> I agree that plugins should not be able to add to the whitelist
> automatically - but in their metadata perhaps there could be
> "required" whitelist additions for the plugin to work properly - so it
> will save the dev time later wondering why it's not working. eg a
> facebook plugin might need http://facebook.com, and list it in
> specified metadata section
>
> On Fri, Nov 25, 2011 at 12:49 PM, Dave Johnson <dave.c.john...@gmail.com> 
> wrote:
>> I agree that we should not implement this all on iOS.
>>
>> addWhiteListEntry should be removed from Android. It seems like we
>> should not give the runtime code the ability to change the whitelist
>> defined at build time!
>>
>> On Mon, Nov 14, 2011 at 7:45 AM, Becky Gibson <gibson.be...@gmail.com> wrote:
>>> I took a look at the app plugin for Android to see if it makes sense to 
>>> implement this for iOS as well.   Below is a review of the apis and the iOS 
>>> ability to implement:
>>>
>>> clearCache() - This seems do-able with iOS NSURLCache object.
>>>
>>> loadURL()
>>> /**
>>>  * Load the url into the webview or into new browser instance.
>>>  *
>>>  * @param url           The URL to load
>>>  * @param props         Properties that can be passed in to the activity:
>>>  *      wait: int                           => wait msec before loading URL
>>>  *      loadingDialog: "Title,Message"      => display a native loading 
>>> dialog
>>>  *      loadUrlTimeoutValue: int            => time in msec to wait before 
>>> triggering a timeout error
>>>  *      clearHistory: boolean              => clear webview history 
>>> (default=false)
>>>  *      openExternal: boolean              => open in a new browser 
>>> (default=false)
>>>  *
>>>  * Example:
>>>  *      navigator.app.loadUrl("http://server/myapp/index.html";, {wait:2000, 
>>> loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000});
>>>  */
>>> We can implement all of these parameters in iOS.  Although, I'm not sure 
>>> what is meant by a "native loading dialog" as iOS generally just uses a 
>>> spinner with this. We could create and display a standard dialog until the 
>>> load request is complete.   This is an example of where only supporting iOS 
>>> 4 or greater would make this easier since we could use a block to 
>>> potentially simplify the code.  Open in a new browser would launch is a 
>>> standard Safari window - there would be no mechanism for returning to the 
>>> app since iOS devices have no back button like Android.  I think we would 
>>> have to maintain the history ourselves in order to implement clearHistory 
>>> as I can't find any "easy" api to do this.
>>>
>>> cancelLoadURL() - this is do-able in iOS.
>>>
>>> clearHistory()
>>> /**
>>>  * Clear web history in this web view.
>>>  * Instead of BACK button loading the previous web page, it will exit the 
>>> app.
>>>  */
>>> Given the description I'm not sure this makes sense for iOS since there is 
>>> no back button and no way to programmatically exit an app - the app should 
>>> be put into the background.  We would have to maintain our own history list 
>>> in order to clear it.
>>>
>>> backHistory() - this can be implemented using UIWebView goBack api.
>>>
>>> overrideBackbutton()
>>> **
>>>  * Override the default behavior of the Android back button.
>>>  * If overridden, when the back button is pressed, the "backKeyDown" 
>>> JavaScript event will be fired.
>>>  *
>>>  * Note: The user should not have to call this method.  Instead, when the 
>>> user
>>>  *       registers for the "backbutton" event, this is automatically done.
>>>  *
>>>  * @param override              T=override, F=cancel override
>>>  */
>>> This doesn't make sense for iOS since there is no back button.
>>>
>>> exitApp()
>>> /**
>>>  * Exit and terminate the application.
>>>  */
>>>
>>> This is not allowed on iOS.  There is an option to not put apps into the 
>>> background but I think Apple would frown on an exitApp() api.
>>>
>>> addWhiteListEntry()
>>> /**
>>>  * Add entry to approved list of URLs (whitelist) that will be loaded into 
>>> PhoneGap container instead of default browser.
>>>  *
>>>  * @param origin                URL regular expression to allow
>>>  * @param subdomains    T=include all subdomains under origin
>>>  */
>>>
>>> This is do-able but I question the security of adding an api to allow 
>>> bypassing the hardcoded whitelist entry.   I do believe that the current 
>>> iOS command polling mechanism to invoke gap commands is fairly secure but I 
>>> need people with better security skills than mine to confirm.
>>>
>>>
>>> Thus, other than offering a loadURL() command with more options, I'm not 
>>> sure I see the benefit of implenting this plugin for iOS.  Do people have 
>>> examples of use cases where the achievable apis are needed?
>>>
>>> thanks,
>>> -becky
>>
>

Reply via email to