Как совместно использовать пользовательские данные между приложениями для iPhone?

Эта реализация InputFilter решает проблему.

import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.method.DigitsKeyListener;

public class MoneyValueFilter extends DigitsKeyListener {
    public MoneyValueFilter() {
        super(false, true);
    }

    private int digits = 2;

    public void setDigits(int d) {
        digits = d;
    }

    @Override
    public CharSequence filter(CharSequence source, int start, int end,
            Spanned dest, int dstart, int dend) {
        CharSequence out = super.filter(source, start, end, dest, dstart, dend);

        // if changed, replace the source
        if (out != null) {
            source = out;
            start = 0;
            end = out.length();
        }

        int len = end - start;

        // if deleting, source is empty
        // and deleting can't break anything
        if (len == 0) {
            return source;
        }

        int dlen = dest.length();

        // Find the position of the decimal .
        for (int i = 0; i < dstart; i++) {
            if (dest.charAt(i) == '.') {
                // being here means, that a number has
                // been inserted after the dot
                // check if the amount of digits is right
                return (dlen-(i+1) + len > digits) ? 
                    "" :
                    new SpannableStringBuilder(source, start, end);
            }
        }

        for (int i = start; i < end; ++i) {
            if (source.charAt(i) == '.') {
                // being here means, dot has been inserted
                // check if the amount of digits is right
                if ((dlen-dend) + (end-(i + 1)) > digits)
                    return "";
                else
                    break;  // return new SpannableStringBuilder(source, start, end);
            }
        }

        // if the dot is after the inserted part,
        // nothing can break
        return new SpannableStringBuilder(source, start, end);
    }
}
26
задан Chris Hanson 26 October 2008 в 02:59
поделиться

4 ответа

Существует два различных пути, которыми Вы могли бы пойти об этом.

1) данные, которые необходимо совместно использовать, являются нестойкими. Другими словами, необходимо запустить одно приложение с частью данных, с которыми оно может сделать что-то. В этом случае Вы зарегистрировали бы специальную схему URL на приложение.

можно узнать больше информации о схемах URL через Craig Hockenberry в его [отредактированное] сообщение в блоге .

2) данные, которые необходимо совместно использовать, являются персистентными. Другими словами, Вам нужно что-то как файл данных, который оба приложения могут считать и записать также. Насколько я знаю, что нет безопасного способа сделать это кроме того, чтобы хранить Ваши данные на удаленном сервере. При необходимости в данных, доступных без информационного соединения тогда, необходимо было бы выяснить способ синхронизировать данные между отдельными приложениями и удаленным сервером.

19
ответ дан Michael Ledford 15 October 2019 в 08:07
поделиться

В дополнение к тому, что было уже упомянуто, документация iPhone относительно подписывания кода, кажется, подразумевает, что приложения, подписанные с теми же идентификационными данными, могут получить доступ к тем же объектам Цепочки для ключей. Если необходимо сохранить относительно небольшие количества данных (пароли, и т.д.), это может быть полезной техникой.

19
ответ дан Mark Bessey 15 October 2019 в 08:07
поделиться

Самый последний мобильный подкаст Дэна Грисби выдвигает гипотезу о том, что вы также можете использовать собственные буферы обмена именами для обмена информацией между приложениями. Я понимаю, что это старый пост, но я подумал, что укажу на это, потому что в нем много результатов от Google. :)

(Документация также предполагает, что NSUserDefaults может быть полезно здесь, но я читал в другом месте , что на самом деле это не так.)

3
ответ дан livingtech 15 October 2019 в 08:07
поделиться

Хак, который я могу придумать, это запись и чтение из адресной книги с помощью API, сохранение данных в доступных полях (+ преобразование NSData для изображения пользователя возможно). Изменить: я успешно реализовал преобразование NSData и сохранение объектов внутри отображаемого изображения контакта, что сделало их недоступными для редактирования из приложения контактов.

3
ответ дан 28 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: