alpha_deer
alpha_deer
  • 发布:2022-11-06 17:52
  • 更新:2023-11-21 16:52
  • 阅读:628

plus.ios.invoke 调用iOS方法无响应

分类:uni-app

有个需求需要预先 获取 相机权限,想通过 plus.ios.invoke 实现,但是没效果。

plus.ios.invoke(AVCaptureDevice, 'requestAccessForMediaType:completionHandler:', 'AVMediaTypeVideo', null)  

执行官方文档中的 demo 也没有任何反应


// 导入UIAlertView类  
            let UIAlertView = plus.ios.importClass('UIAlertView')  
            // 创建UIAlertView类的实例对象  
            let view = new UIAlertView()  
            // 设置提示对话上的内容  
            view.initWithTitlemessagedelegatecancelButtonTitleotherButtonTitles(  
                '自定义标题', // 提示框标题  
                '使用NJS的原生弹出框,可自定义弹出框的标题、按钮', // 提示框上显示的内容  
                null, // 操作提示框后的通知代理对象,暂不设置  
                '确定(或者其他字符)', // 提示框上取消按钮的文字  
                null  
            ) // 提示框上其它按钮的文字,设置为null表示不显示  
            // 调用show方法显示提示对话框,在JS中使用()语法调用对象的方法  
            view.show()

https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.invoke 下面这个写法也不行

    // 扩展API加载完毕,现在可以正常调用扩展API  
  // 创建UIAlertView类的实例对象  
  var view = plus.ios.newObject("UIAlertView");  
  // 设置提示对话上的内容,这里的方法名称中必须包含':'字符  
  plus.ios.invoke(view,"initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:"  
      , "自定义标题" // 提示框标题  
      , "使用NJS的原生弹出框,可自定义弹出框的标题、按钮"  // 提示框上显示的内容  
      , null // 操作提示框后的通知代理对象,暂不设置  
      , "确定(或者其他字符)" // 提示框上取消按钮的文字  
      , null ); // 提示框上其它按钮的文字,设置为null表示不显示  
  // 调用show方法显示提示对话框,在JS中使用()语法调用对象的方法  
  plus.ios.invoke(view,"show");
2022-11-06 17:52 负责人:天生DR 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

天生DR

天生DR - 天生我材必有用

如果是uni项目 可以用这个API https://uniapp.dcloud.net.cn/api/system/getappauthorizesetting.html

cameraAuthorized

  • alpha_deer (作者)

    非常感谢您的回复。不过您提供的链接 只能获取 App 的权限状态,无法给 App 向iOS系统申请权限。由于iOS系统特性,App 必须申请过一次权限,App 设置列表里面才会出现对应的权限选项。所以想实现跟iOS原生一样,可以调用代码 预先申请一次权限,


    switch (status) {    

    case AVAuthorizationStatusNotDetermined:

    [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {

    if (!granted) {

    [SGAuthorizationCheck showAlertWithTitle:@"拍照需要相机权限"

    content:@"请在 系统设置->隐私->相机 中打开本应用的相机访问权限"];

    }

    }];

    break;

    2022-11-09 10:00

2***@qq.com

2***@qq.com

楼主请问解决了吗

中午吃啥

中午吃啥

楼主请问解决了吗

9***@qq.com

9***@qq.com

plus.ios.import('AVCaptureDevice').requestAccessForMediaTypecompletionHandler('vide', console.log),
套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

参考下
https://ext.dcloud.net.cn/plugin?id=594

要回复问题请先登录注册