如何在 android appcelerator 应用程序中设置设备文件夹中图片的路径

How to set path to picture in folder in device in android appcelerator app

所以我有一个应用程序,我想让用户将分数的屏幕截图分享到 facebook 等...我正在使用 SocialShare 小部件。在文档中它说要像这样设置图像的路径:"image:fileToShare.nativePath",但我不太确定如何设置它。另一个问题是我需要分享总是有不同名称的图片,它会在 pictures/enigmania/ I'我是 appcelerator 的新手,所以我不知道是否有通配符之类的东西可以用于此目的?感谢您的帮助。

到目前为止,这是我的代码,我知道它是错误的,我知道小部件可以正常工作,因为它可以毫无问题地共享文本:

function shareTextWidget(e){
// share text status
var socialWidget=Alloy.createWidget('com.alcoapps.socialshare');
socialWidget.share({status:"Enigmania kvíz",androidDialogTitle:"hoho",image:test.png/pictures/enigmania});
}
  • 您应该使用 Ti.Filesystem class methods/properties 来获取位于内部或外部的任何文件的路径存储。

  • 还知道Android 6+的读取存储权限。在访问 Android 6+.

  • 上的任何文件之前使用 Storage Permissions

在此位置的内部存储上创建目录的简单代码片段:pictures/enigmania,然后在该目录中写入捕获视图的图像文件。

function shareTextWidget(e){
    var directory = Ti.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, 'pictures/enigmania');
    !directory.exists() && directory.createDirectory();

    var fileToShare = Ti.Filesystem.getFile(directory.resolve(), 'screen.jpg');
    fileToShare.write($.SCREENSHOT_VIEW.toImage());    // write the blob image to created file

    var socialWidget=Alloy.createWidget('com.alcoapps.socialshare');
    socialWidget.share({status:"Enigmania kvíz",androidDialogTitle:"hoho",image:fileToShare.nativePath});
}

这段代码应该可以正常工作。

请注意,$.SCREENSHOT_VIEW 是您要为其截屏的视图 ID,因此这取决于您如何维护您的视图位置以进行捕获正确的屏幕截图,但重点是使用 Ti.UI.View toImage() 方法来捕获特定视图的屏幕截图。

让我知道这是否适合您,否则我们可以通过了解您的确切要求来研究其他方法。祝你好运!!!!