add webbrowser support for ios
This commit is contained in:
parent
4d07ae4112
commit
0147538dfd
4 changed files with 50 additions and 2 deletions
|
@ -13,6 +13,7 @@ cdef extern from "ios_wrapper.h":
|
||||||
ctypedef void (*ios_send_email_cb)(char *, void *)
|
ctypedef void (*ios_send_email_cb)(char *, void *)
|
||||||
int ios_send_email(char *subject, char *text, char *mimetype, char
|
int ios_send_email(char *subject, char *text, char *mimetype, char
|
||||||
*filename, char *filename_alias, ios_send_email_cb cb, void *userdata)
|
*filename, char *filename_alias, ios_send_email_cb cb, void *userdata)
|
||||||
|
void ios_open_url(char *url)
|
||||||
|
|
||||||
cdef void _send_email_done(char *status, void *data):
|
cdef void _send_email_done(char *status, void *data):
|
||||||
cdef object callback = <object>data
|
cdef object callback = <object>data
|
||||||
|
@ -20,11 +21,43 @@ cdef void _send_email_done(char *status, void *data):
|
||||||
Py_DECREF(callback)
|
Py_DECREF(callback)
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Support for webbrowser module
|
||||||
|
#
|
||||||
|
|
||||||
|
class IosBrowser(object):
|
||||||
|
def open(self, url, new=0, autoraise=True):
|
||||||
|
open_url(url)
|
||||||
|
def open_new(self, url):
|
||||||
|
open_url(url)
|
||||||
|
def open_new_tab(self, url):
|
||||||
|
open_url(url)
|
||||||
|
|
||||||
|
import webbrowser
|
||||||
|
webbrowser.register('ios', IosBrowser, None, -1)
|
||||||
|
|
||||||
#
|
#
|
||||||
# API
|
# API
|
||||||
#
|
#
|
||||||
|
|
||||||
__version__ = (1, 0, 0)
|
__version__ = (1, 1, 0)
|
||||||
|
|
||||||
|
def open_url(url):
|
||||||
|
'''Open an URL in Safari
|
||||||
|
|
||||||
|
:Parameters:
|
||||||
|
`url`: str
|
||||||
|
The url string
|
||||||
|
'''
|
||||||
|
cdef char *j_url = NULL
|
||||||
|
|
||||||
|
if url is not None:
|
||||||
|
if type(url) is unicode:
|
||||||
|
url = url.encode('UTF-8')
|
||||||
|
j_url = <bytes>url
|
||||||
|
|
||||||
|
ios_open_url(j_url)
|
||||||
|
|
||||||
|
|
||||||
def send_email(subject, text, mimetype=None, filename=None, filename_alias=None, callback=None):
|
def send_email(subject, text, mimetype=None, filename=None, filename_alias=None, callback=None):
|
||||||
'''Send an email using the IOS api.
|
'''Send an email using the IOS api.
|
||||||
|
|
13
src/ios/ios_browser.m
Normal file
13
src/ios/ios_browser.m
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
/*
|
||||||
|
* Browser support
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#include "ios_wrapper.h"
|
||||||
|
|
||||||
|
void ios_open_url(char *url)
|
||||||
|
{
|
||||||
|
NSString *nsurl = [NSString stringWithCString:(char *)url encoding:NSUTF8StringEncoding];
|
||||||
|
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: nsurl]];
|
||||||
|
}
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef __IOS_WRAPPER
|
#ifndef __IOS_WRAPPER
|
||||||
#define __IOS_WRAPPER
|
#define __IOS_WRAPPER
|
||||||
|
|
||||||
|
void ios_open_url(char *url);
|
||||||
|
|
||||||
typedef void (*ios_send_email_cb)(char *, void *);
|
typedef void (*ios_send_email_cb)(char *, void *);
|
||||||
|
|
||||||
int ios_send_email(char *subject, char *text, char *mimetype, char *filename,
|
int ios_send_email(char *subject, char *text, char *mimetype, char *filename,
|
||||||
|
|
|
@ -5,7 +5,7 @@ setup(name='ios',
|
||||||
version='1.0',
|
version='1.0',
|
||||||
ext_modules=[
|
ext_modules=[
|
||||||
Extension(
|
Extension(
|
||||||
'ios', ['ios.c', 'ios_mail.m'],
|
'ios', ['ios.c', 'ios_mail.m', 'ios_browser.m'],
|
||||||
libraries=[ ],
|
libraries=[ ],
|
||||||
library_dirs=[],
|
library_dirs=[],
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue