Перейти к содержанию
Fire Monkey от А до Я

Поиск сообщества

Показаны результаты для тегов 'decidePolicyForNavigationAct'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 1 результат

  1. Помогите портировать интерфейсы для реализации делегата для WebView.setPolicyDelegate, с помощью которого можно запрещать или переопределять переходы по ссылкам. Отталкивался от хелпа эпла. Реализовал вроде как все, что нужно. Страница гугла открывается, но колбэк делегата не вызывается. unit MainFormUnit; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, Macapi.AppKit, Macapi.CocoaTypes, Macapi.Foundation, Macapi.ObjectiveC, FMX.StdCtrls, Posix.Stdlib, Macapi.CoreFoundation, FMX.Platform.Mac, System.Generics.Collections; type WebFrameClass = interface(NSObjectClass) ['{7BE750C8-DFEC-4870-851A-12DBCB0B78F6}'] end; WebFrame = interface(NSObject) ['{BCFA04BE-41AB-4B78-89C0-3330F12C7695}'] procedure loadRequest(request: NSURLRequest); cdecl; end; TWebFrame = class(TOCGenericImport<WebFrameClass, WebFrame>) end; WebViewClass = interface(NSViewClass) ['{0D9F44B7-09FD-4E35-B96E-8DB71B9A2537}'] {class} function canShowMIMEType(MIMEType: NSString): Boolean; cdecl; end; WebView = interface(NSView) ['{C36D8016-2FCB-49F0-BA1C-C9913A37F9AC}'] procedure clos; cdecl; procedure setPolicyDelegate(delegate: Pointer); cdecl; procedure setHostWindow(hostWindow: NSWindow); cdecl; function initWithFrame(frame: NSRect; frameName: NSString; groupName: NSString): Pointer; cdecl; function mainFrame: WebFrame; cdecl; end; TWebView = class(TOCGenericImport<WebViewClass, WebView>) end; WebPolicyDecisionListener = interface(IObjectiveC) ['{2AD8355D-6C57-410D-A4F4-230C90B6D799}'] procedure download; cdecl; procedure ignore; cdecl; procedure use; cdecl; end; WebViewDelegate = interface(IObjectiveC) ['{5B66FF5F-DA92-48D3-A715-C89A68AA8995}'] procedure decidePolicyForNavigationAction(actionInformation: NSDictionary; request: NSURLRequest; frame: WebFrame; listener: WebPolicyDecisionListener); cdecl; end; TWebViewDelegate = class(TOCLocal, WebViewDelegate) procedure decidePolicyForNavigationAction(actionInformation: NSDictionary; request: NSURLRequest; frame: WebFrame; listener: WebPolicyDecisionListener); cdecl; end; TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); public MyWebView: WebView; MyDelegate: TWebViewDelegate; end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormCreate(Sender: TObject); var PWebView: Pointer; FwkMod: HMODULE; urlStr: NSURL; urlreq: NSURLRequest; MyView: NSView; const WebKitFWK: string = '/System/Library/Frameworks/WebKit.framework/WebKit'; begin FwkMod := System.SysUtils.LoadLibrary(PWideChar(WebKitFWK)); PWebView := TWebView.Alloc.initWithFrame(MakeNSRect(10, 10, 500, 500), nil, nil); MyWebView := TWebView.Wrap(PWebView); MyWebView.setAutoresizingMask(NSViewHeightSizable or NSViewWidthSizable); //MyWebView.setHostWindow(MyNSWindow); MyView := WindowHandleToPlatform(Form1.Handle).View; MyView.addSubview(MyWebView); MyDelegate := TWebViewDelegate.Create; MyWebView.setPolicyDelegate((MyDelegate as ILocalObject).GetObjectID); urlStr := TNSURL.Wrap(TNSURL.Alloc.initWithString(NSSTR('http://www.google.com/'))); urlreq := TNSURLRequest.Wrap(TNSURLRequest.Alloc.initWithURL(urlstr)); MyWebView.mainFrame.loadRequest(urlreq); urlStr.release; urlreq.release; end; { TWebViewDelegate } procedure TWebViewDelegate.decidePolicyForNavigationAction( actionInformation: NSDictionary; request: NSURLRequest; frame: WebFrame; listener: WebPolicyDecisionListener); begin MessageDlg('hi', TMsgDlgType.mtInformation, [TMsgDlgBtn.mbOK], 0); end; end. Также не совсем понятно, где должен располагаться метод webView:decidePolicyForNavigationAction:request:frame:decisionListener. В документации он объявлен как: - (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id < WebPolicyDecisionListener>)listener Т.е. похоже на то, что он должен быть методом класса WebView? Или же методом произвольного класса делегата? И еще, я так понимаю, что полное имя этого метода webView:decidePolicyForNavigationAction:request:frame:decisionListener, то есть объявляя его как decidePolicyForNavigationAction возможно мы лишаем mac os возможности найти его. Но как же тогда объявить его полностью?
×
×
  • Создать...