1***@qq.com
1***@qq.com
  • 发布:2019-03-04 09:26
  • 更新:2022-02-11 10:17
  • 阅读:8823

uni-app调用Android中第三方的Activity

分类:uni-app

请问,通过原生插件开发中的module方式,调用第三方的Android版的Activity(包含独立的页面),应该如何做?目前使用的方式,会造成跳转后立即闪退。

1.第三方的Activity,是直接可以安装到手机上使用的,是一个独立的应用

2.将第三方的代码在官方的richalert模块中进行调用

3.打包apk,复制到工程中,打包aar,复制到工程中

  1. 在uni-app代码中,以调用richalert的方式进行调用

  2. 结果在手机上运行时,一旦触发调用richaler的代码,闪退

2019-03-04 09:26 负责人:无 分享
已邀请:
DCloud_Android_ST

DCloud_Android_ST

这种问题都要找闪退原因,看logcat找日志。

  • 2***@qq.com

    1、库工程里面的AndroidManifest.xml无用,要声明Activity,必须写到主工程 https://www.jianshu.com/p/0523c682c718

    2、通过查看logcat发现有个class加载失败

    2019-07-11 12:00

  • 四宝花生酱

    官方能不能出一个activity 的案例。

    2019-07-11 16:38

  • 2***@qq.com

    回复 四宝花生酱: library里的activity不在library里注册,去主工程app里的mainifest.xml里注册,我这个问题已经解决了

    2019-07-11 17:44

  • 四宝花生酱

    回复 2***@qq.com: 我在mainifest.xml里注册了。但是uni-app打包后点击直接生成了一个新的app。页面全空。。。大佬。方便加个QQ探讨一下吗?十分感谢

    2019-07-11 20:18

1***@qq.com

1***@qq.com - 123456

var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass('android.content.Intent');
var MyActivity = plus.android.importClass('包名.类名');
var intent = new Intent(main, 类名.class);
main.startActivity(intent);

  • 1***@qq.com

    这个是在uni-app中调用android activity吗?

    2019-10-31 09:36

  • 1***@qq.com

    回复 1***@qq.com: 是的 不过这个是把uni-app 生成的本地包

    2019-10-31 09:57

L***@163.com

L***@163.com

问题加一!!!

  • 1***@qq.com (作者)

    已经好了,需要把activity写到androidmanifest.xml里面

    2019-07-11 07:48

  • 2***@qq.com

    回复 1***@qq.com: 可以把mainifest.xml发一下吗,我也是遇到了这个问题,我一开始就把activity放到了library的mainifest.xml里了,不知道是不是我哪里写错了,闪退

    2019-07-11 10:14

  • 四宝花生酱

    回复 1***@qq.com: 能发一下文件吗?我也碰到这个问题了。

    2019-07-11 16:37

  • 1***@qq.com (作者)

    回复 2***@qq.com:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="包名" >

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-permission android:name="android.permission.RECORD_AUDIO" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


    <uses-feature android:name="android.hardware.camera" />  
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <application>
    <activity
    android:name=".MyCameraActivity"
    android:screenOrientation="portrait" />
    </application>

    </manifest>

    2019-07-14 10:43

  • 1***@qq.com (作者)

    回复 四宝花生酱:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="包名" >

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-permission android:name="android.permission.RECORD_AUDIO" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


    <uses-feature android:name="android.hardware.camera" />  
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <application>
    <activity
    android:name=".MyCameraActivity"
    android:screenOrientation="portrait" />
    </application>

    </manifest>

    2019-07-14 10:43

  • 四宝花生酱

    回复 1***@qq.com: 楼主。你最后是离线打包方式还是云打包方式搞的

    2019-07-16 16:50

  • 1***@qq.com

    回复 1***@qq.com:可是会报错呀

    2020-05-19 23:15

zhangdaren

zhangdaren

楼主,你的activity需要写到androidmanifest.xml里吗?还是直接调用的?

  • 1***@qq.com (作者)

    已经好了,需要把activity写到androidmanifest.xml里面

    2019-07-11 07:48

2***@qq.com

2***@qq.com

同问,根本进不来这个方法,直接崩溃,官方的demo只是new的alert,没有activity相关的案例

DCloud_heavensoft
  • 2***@qq.com

    他这个是直接写到了自定义基座里面,启动app就等于启动activity,没有用插件的方式

    2019-07-11 10:14

  • 1***@qq.com (作者)

    回复 2***@qq.com: 用的是插件方式啊

    2019-07-14 10:43

1***@qq.com

1***@qq.com - 热爱生活,热爱编程,热爱学习!

大佬请问调用Activity是一定要在Android Studio中打包吗?

queer

queer

请问这个是不是只能在AS里打包。。。不然Hbuilder X里不能改xml文件啊,

  • 1***@qq.com (作者)

    在AS里面本地打包运行,测试通过后,通过插件方式放到uni-app里面去运行。

    2019-12-02 12:48

keepmovng

keepmovng

楼主好。请问以安卓插件方式开发出来的activity结合到uniapp后,编译成ios应用,ios应用可以正常显示这个activity吗?

  • 1***@qq.com (作者)

    不可以,iOS需要另外开发插件

    2020-02-21 09:12

Sanky

Sanky

楼主,是调用自定义相机拍照功能吗?拍照成功后图片路径怎么传回Uniapp页面的?

3***@qq.com

3***@qq.com

可以通过以下方式跳转至activity:
Intent intent = new Intent(this.mWXSDKInstance.getContext(), MyActivity.class);
Activity mActivity = (Activity) this.mWXSDKInstance.getContext();
mActivity.startActivityForResult(intent, 100);
结果回调的话,直接在richalertModule中重写onActivityResult方法即可
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 100) {
myCallback.invoke(data.getExtra("data"));
}
}
注:须在module中的AndroidManifest.xml中添加MyActivity的activity
参考:https://ask.dcloud.net.cn/article/36849

要回复问题请先登录注册