请问,通过原生插件开发中的module方式,调用第三方的Android版的Activity(包含独立的页面),应该如何做?目前使用的方式,会造成跳转后立即闪退。
1.第三方的Activity,是直接可以安装到手机上使用的,是一个独立的应用
2.将第三方的代码在官方的richalert模块中进行调用
3.打包apk,复制到工程中,打包aar,复制到工程中
-
在uni-app代码中,以调用richalert的方式进行调用
-
结果在手机上运行时,一旦触发调用richaler的代码,闪退
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: 可以把mainifest.xml发一下吗,我也是遇到了这个问题,我一开始就把activity放到了library的mainifest.xml里了,不知道是不是我哪里写错了,闪退
2019-07-11 10:14
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
zhangdaren - 小程序转uniapp工具:https://ext.dcloud.net.cn/plugin?id=2656
楼主,你的activity需要写到androidmanifest.xml里吗?还是直接调用的?
可以通过以下方式跳转至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
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