OpenApp+小程序容器支持Maven
2020-04-18 本文已影响0人
linwaiwai
使用gradle
buildscript {
repositories {
jcenter()
}
}
allprojects {
repositories {
jcenter()
}
}
dependencies{
implementation ('com.openapplus:openapplus:1.0.3')
implementation 'com.eclipsesource.j2v8:j2v8:6.1.0@aar'
}
详细添加位置请参考DEMO[https://github.com/linwaiwai/openapplus-demo/blob/master/Android/]
运行
在项目工程的自定义application中的onCreate方法中添加以下两个方法: 注意:一定要在主进程进行该项操作
OpenApplus.registerApp(this, SampleContants.APPID, SampleContants.APP_SECRET);
OpenApplus.sync();
OpenApplus.setCallback(new OpenApplusCallback() {
@Override
public void invoke(OACallbackType type, JSONObject data, OpenApplusNotify notify) {
if (type == OACallbackType.OACallbackTypeAuthUser){
// 该接口仅供测试使用,请使用服务端发送给授权请求
OARequestWrapper requestWrapper = OpenApplus.makeRequestWrapper(SampleContants.SERVER_APPID, SampleContants.SERVER_APP_SECRET);
OAAuthDtoWrapper dto = new OAAuthDtoWrapper();
dto.setUid("1");
try {
dto.setCode(data.getString("code"));
} catch (JSONException e) {
e.printStackTrace();
}
String deviceID = Settings.Secure.getString(WXEnvironment.sApplication.getApplicationContext().getContentResolver(),
Settings.Secure.ANDROID_ID);
dto.setDeviceid(deviceID);
requestWrapper.sendObject(dto, notify);
}
}
});
注意:
参数1:上下文,必须的参数,不能为空
参数2:OpenApplus app key,必须参数。
参数3:OpenApplus app secret,必须参数。
添加相关权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_GPS"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-permission android:name="getui.permission.GetuiService.com.bmdoctor.jyt"/>
<!--amap额外权限-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
代码混淆
如果您的应用使用了混淆, 请添加
-keep class com.openapplus.** {*;}
添加Activty入口
在AndroidManifest.xml中添加
<activity android:name="com.openapplus.activity.OATinyProgramActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.benmu.weex.example.categoty.page"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
</intent-filter>
</activity>
启动小程序容器
Intent intent = new Intent(SplashActivity.this, OATinyProgramActivity.class);
intent.putExtra("tiny","openapplus://jsApp/xxxxx");
startActivity(intent);
finish();