2013-12-16 2 views
0

Я пытаюсь отобразить несколько форматов файлов на устройствах Android и iOS, включая файлы PDF, Excel, Word, Power Point и .txt.Как отобразить данные uri на android

я могу получить все эти различные форматы файлов для отображения в IOS устройств с использованием URI

данных, например, если бы я хотел, чтобы отобразить файл PDF, я бы назвал следующее:

window.open('data:application/pdf;base64,' + base64pdfdatastring, '_blank'); 

однако ни один из форматов не работал для текста, который отформатирован точно так же, за исключением:

window.open('data:text/plain;base64,' + base64textdatastring, '_blank'); 

Эти файлы могут потенциально содержать конфиденциальную информацию , поэтому google doc не является допустимым решением.

Как получить android для корректного отображения данных uri?

Thanks

ответ

0

Создайте намерение ACTION_VIEW.

Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
     Uri data = Uri.parse(path); 
     intent.setDataAndType(data, YOUR_MIME_TYPE); 
     startActivity(intent); 

Кроме того, вы можете захотеть использовать менеджер пакетов, чтобы убедиться, что что-то может справиться намерение, прежде чем запускать его

PackageManager packageManager = activity.getPackageManager(); 
     List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 
       PackageManager.MATCH_DEFAULT_ONLY); 
     if (list.size() > 0) 
             //Do Something 

http://developer.android.com/reference/android/content/Intent.html

+0

Я использую PhoneGap/Кордову, у меня не будет доступ к этому из javascript, если это не предназначено для перехода в плагин phonegap/cordova? – George

+0

Ah gotcha, это не упоминалось первоначально, поэтому я просто предположил, что вы используете SDK. Я не знаком с телефонной связью/кордорой, но я думаю, что эта тенденция задана как аналогичный вопрос и имеет принятый ответ http://stackoverflow.com/questions/10685220/android-and-phonegap-intent-to-launch-an- other-application – Submersed

+0

указанный плагин childbrowser устарел, и все функциональные возможности были перенесены в плагин inappbrowser. если вы посмотрите на строку 142 [этого файла] (https://github.com/apache/cordova-plugin-inappbrowser/blob/master/src/android/InAppBrowser.java), а также [Документация InAppBrowser] (https://github.com/apache/cordova-plugin-inappbrowser/blob/master/docs/window.open.md), вы сможете увидеть, что он делает то же самое. Однако, если я должен был вызвать функцию с аргументом «_система» вместо «_blank», ничего не происходит. – George

Смежные вопросы