#android #ios #react-native
#Android #iOS #react-native
Вопрос:
В настоящее время я работаю над Ar-приложением в react native версии 0.55 и react-viro версии 2.12.0. Это приложение, похожее на pokemon, где на странице AR есть пункт, на который можно кликнуть. Когда пользователь нажимает на него, открывается модальный. В dev (вот полная команда: adb reverse tcp: 8081 tcp: 8081 amp;amp; react-native run-android —variant=Ardebug) это появляется сразу. Но когда мы запускаем его в режиме release, для появления модального параметра требуется не менее одной минуты.
Код для страницы :
<ViroARScene onTrackingUpdated={this._onInitialized}>
<ViroSpotLight
innerAngle={5}
outerAngle={45}
direction={[0, -1, -0.2]}
color="#ffffff"
castsShadow={true}
influenceBitMask={2}
shadowMapSize={2048}
shadowNearZ={2}
shadowFarZ={5}
shadowOpacity={0.7}
/>
<ViroAmbientLight color="#ffffff" />
<ViroNode ref={_setARNodeRef} onClick={this.tryGain}>
<Viro3DObject
position={[x, 0, z]}
scale={[0.5, 0.5, 0.5]}
rotation={[0, 0, 0]}
source={require(`${ROOT_3D_ASSET}chest/coffre_bois_obj.obj`)}
resources={[
require(`${ROOT_3D_ASSET}chest/coffre_bois_mtl.mtl`),
require(`${ROOT_3D_ASSET}chest/wood.jpg`),
require(`${ROOT_3D_ASSET}chest/wood2.jpg`),
require(`${ROOT_3D_ASSET}chest/gold.jpg`)
]}
onLoadStart={this._onLoadStart}
onLoadEnd={this._onLoadEnd}
onError={this._onError}
lightReceivingBitMask={3}
shadowCastingBitMask={2}
type="OBJ"
/>
</ViroNode>
</ViroARScene>
и функция для события щелчка
tryGain = _ => {
this.clickInterval=setInterval(() => (this.hasClicked = false), 500);// in case click, goes nowherer
if (this.hasClicked) {
return;
}
handleTryGain.call(this, this.props.activeGainPoiId, this.props.isDemo);
this.hasClicked = true;
};
Это тот же код, поэтому я не уверен, почему так много различий. У кого-нибудь была такая же проблема?
Спасибо
Ответ №1:
итак, я разобрался с проблемой, посмотрев на журнал cat. Из-за этих реквизитов onLoadStart, onLoadEnd amp; amp; onError я выводил журналы ошибок, которые перекрывали приложение, вызывая задержку. Я исправил проблему, просто удалив их в Viro3DObject
<Viro3DObject ... same
-> Deleted onLoadStart={this._onLoadStart}
-> Deleted onLoadEnd={this._onLoadEnd}
-> Deleted onError={this._onError} lightReceivingBitMask={3} shadowCastingBitMask={2} type="OBJ" />
Все еще есть некоторые ошибки, но это не влияет на приложение