0

我目前正在开发一个基于 php 和 javascript 的项目,在其功能中,它需要通过输入上传图像,这可以在浏览器中完美运行。将web应用封装在一个android应用中,我使用flutter作为框架,通过3.0.0版本的webview_flutter插件它不允许打开相机或 android 图片库。

最后,我需要您的宝贵支持,javascript需要或推荐什么样的方法来打开意图并显示相机或图库?

谢谢大家!!!

这是我对pubspec.yaml的依赖项

dependencies:
  flutter:
    sdk: flutter
  camera:
  path_provider:
  path:
  image_picker: ^0.8.2
  flutter_webview_plugin: ^0.3.10+1

这是我在build.gradle中的默认配置 Android :

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.jlcornejo.iaconlink"
    minSdkVersion 21
    targetSdkVersion 30
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName

这也是我的进口商品:

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
import 'package:myapp/service/audio_service_mp3.dart';
import 'package:record_mp3/record_mp3.dart';
import 'webview/webview_channel_controller.dart';

我在main.dart 中的方法:

/// selecciona la imagen desde la galería
Future<void> _pickImage(ImageSource source) async {
  File selected = await ImagePicker.pickImage(source: source);

  setState(() {
    _imageFile = selected;
  });

  print("close");
  if (_imageFile == null) {
    print("close in");
    flutterWebViewPlugin.show();
  }
}

/// Remueve la imagen
void _clear() {
  setState(() => _imageFile = null);
}
/// Sube la imagen
void _startUpload() {
  File file = _imageFile;
  if (file == null) return;
  String base64Image = base64Encode(file.readAsBytesSync());
  String fileName = file.path.split("/").last;

  http.post(phpEndPoint, body: {
    "image": base64Image,
    "name": fileName,
  }).then((res) {
    print(res.statusCode);
    print(fileName);
    Navigator.of(context).pop(null);
    flutterWebViewPlugin.show();
  }).catchError((err) {
    print(err);
  });
}
4

0 回答 0