使用 android 意图与 appcelerator 共享文件
Share files with appcelerator using android intent
我尝试分享我下载的文件。我将该文件放在 Ti.Filesystem.externalStorageDirectory
中。该文件已正确保存,因为我可以在 ImageView.image
.
中显示它
这是我用来启动 android 分享意图的代码:
(显然你不能将 file:// 方案与 android API 24 一起使用。请参阅此 post:Whosebug)
filePath = filePath.replace('file','content');
var intent = Ti.Android.createIntent({
action: Ti.Android.ACTION_SEND,
});
intent.putExtraUri(Ti.Android.EXTRA_STREAM, filePath);
$.FileList.activity.startActivity(intent);
发生的事情是,共享对话框打开,我选择了我想要共享的应用程序,但随后我收到一个通知,没有任何内容可以共享。
通知失败截图:
试试这个:
var Blob = $.container.toImage();
var file = Ti.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory, 'image_1.png');
f.write(Blob);
/// NOT HERE --filePath = filePath.replace('file','content');
var intent = Ti.Android.createIntent({
action: Ti.Android.ACTION_SEND
});
intent.putExtraUri(Ti.Android.EXTRA_STREAM, f.filePath);
////$.FileList.activity.startActivity(intent);
Ti.Android.currentActivity.startActivity(intent);
其实很简单:
- appcelerator 自己处理filePath,所以没必要用content
替换file
- 意图需要一个类型参数。
工作代码为:
var intent = Ti.Android.createIntent({
action: Ti.Android.ACTION_SEND,
type: '*/*'
});
intent.putExtraUri(Ti.Android.EXTRA_STREAM, filePath);
$.FileList.activity.startActivity(intent);
我尝试分享我下载的文件。我将该文件放在 Ti.Filesystem.externalStorageDirectory
中。该文件已正确保存,因为我可以在 ImageView.image
.
这是我用来启动 android 分享意图的代码: (显然你不能将 file:// 方案与 android API 24 一起使用。请参阅此 post:Whosebug)
filePath = filePath.replace('file','content');
var intent = Ti.Android.createIntent({
action: Ti.Android.ACTION_SEND,
});
intent.putExtraUri(Ti.Android.EXTRA_STREAM, filePath);
$.FileList.activity.startActivity(intent);
发生的事情是,共享对话框打开,我选择了我想要共享的应用程序,但随后我收到一个通知,没有任何内容可以共享。
通知失败截图:
试试这个:
var Blob = $.container.toImage();
var file = Ti.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory, 'image_1.png');
f.write(Blob);
/// NOT HERE --filePath = filePath.replace('file','content');
var intent = Ti.Android.createIntent({
action: Ti.Android.ACTION_SEND
});
intent.putExtraUri(Ti.Android.EXTRA_STREAM, f.filePath);
////$.FileList.activity.startActivity(intent);
Ti.Android.currentActivity.startActivity(intent);
其实很简单:
- appcelerator 自己处理filePath,所以没必要用content 替换file
- 意图需要一个类型参数。
工作代码为:
var intent = Ti.Android.createIntent({
action: Ti.Android.ACTION_SEND,
type: '*/*'
});
intent.putExtraUri(Ti.Android.EXTRA_STREAM, filePath);
$.FileList.activity.startActivity(intent);