Dropbox Chooser Error: Malformed origin
我正在将一个应用程序从Objective C移植到Delphi 10.2。该应用程序使用Dropbox保存和检索文件。 iOS版本使用适用于iOS的Dropbox SDK。我正在尝试在Delphi版本中使用Dropbox Javascript选择器。我正在使用FMX TWebBrowser。我已经执行了Delphi TWebBrowser文档页面上的“在Windows平台上支持JavaScript集成”中描述的Windows注册表编辑。
当我触发Javascript选择器时,出现followinwg错误:
哦,哦!似乎未正确配置此小部件。格式错误 起源
这是Delphi代码:
unit DropBox;
interface
uses
System.SysUtils,
System.Types,
System.UITypes,
System.Classes,
System.Variants,
FMX.Types,
FMX.Controls,
FMX.Forms,
FMX.Graphics,
FMX.Dialogs,
FMX.StdCtrls,
FMX.WebBrowser;
type
TfrmDropBox = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure WebBrowser1DidFailLoadWithError(ASender: TObject);
procedure Button1Click(Sender: TObject);
end;
var
frmDropBox: TfrmDropBox;
implementation
{$R *.fmx}
const
PageHTML =
'<!DOCTYPE html>' +
'<html>' +
'<head>' +
'<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="xxxxxxxxx">' +
'</script>' +
'</head>' +
'<body>' +
'<br><br>' +
'<body>' +
'</html>';
procedure TfrmDropBox.FormCreate(Sender: TObject);
begin
WebBrowser1.LoadFromStrings(PageHTML, '/');
end;
procedure TfrmDropBox.Button1Click(Sender: TObject);
begin
WebBrowser1.EvaluateJavaScript('Dropbox.choose({success: function(files){alert(files[0].link)}});');
end;
procedure TfrmDropBox.WebBrowser1DidFailLoadWithError(ASender: TObject);
begin
ShowMessage('Load failed');
end;
end.
我认为这与旧的SO帖子here中的错误相同。我不知道该解决方案今天是否适用于我的情况。
data-app-key是从我的应用程序的Dropbox注册中获取的,与iOS应用程序使用的密钥相同。我唯一看到的是错误窗口中显示的URL似乎没有link_type参数的值。
在此之前,感谢您提供任何帮助。