「IDGraph Android Tracking Code New」修訂間的差異

出自TAMedia
跳至導覽 跳至搜尋
 
行 5: 行 5:


:第一個參數為Context
:第一個參數為Context
:第二個參數請填入你的Profile ID (可向您的TAMedia窗口詢問)
:第二個參數請填入你的Profile ID (可向您的TAmedia窗口詢問)
:第三個為boolean值,設為true時,每次回報會出現Toast訊息框以確認回報是否成功
:第三個為boolean值,設為true時,每次回報會出現Toast訊息框以確認回報是否成功
<br>
<br>
行 13: 行 13:
     IDGraphTracker.getInstance().reportTrackLog(extraParams)
     IDGraphTracker.getInstance().reportTrackLog(extraParams)
</source>
</source>
<br>
<br>
<br>
上述提及的函式,可參考下列方式加入您的專案
上述提及的函式,可參考下列方式加入您的專案
*<big><u>Without Application Class</u></big>
<source>
:若APP專案未擁有自己的Application class,可以將追蹤碼放在自己的APP首頁,也就是第一個出現的Activity,透過此方式,每次APP重啟時都會觸發回報,程式碼如下:
     override fun onCreate(savedInstanceState: Bundle?) {
<b>&lt;MainActivity.java&gt;</b>
         super.onCreate(savedInstanceState)
public class MainActivity extends AppCompatActivity {
         enableEdgeToEdge()
        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
     private static final String PROFILE_ID = "<b><Your Profile ID></b>";
 
    private static final boolean isDebug = false;
         setContent {
 
    @Override
            var latitude by remember { mutableStateOf("") }
    protected void onCreate(Bundle savedInstanceState) {
            var longitude by remember { mutableStateOf("") }
         super.onCreate(savedInstanceState);
 
         setContentView(R.layout.activity_main);
            MainScreen(
                onRequestLocation = { requestLocationPermission { lon, lat ->
         // Initial
                    latitude = lat
        IDGraphTracker.getInstance().init(this, PROFILE_ID, isDebug);
                    longitude = lon
        // Send Tracking Log
                } },
        IDGraphTracker.getInstance().reportTrackLog();
                onReportLocation = { lon, lat ->
                    val extraParams = listOf(lon, lat)
                    IDGraphTracker.getInstance().init(this, PROFILE_ID, false)
                    IDGraphTracker.getInstance().reportTrackLog(extraParams)
                },
                latitude = latitude,
                longitude = longitude
            )
        }
     }
     }
 
</source>
    Other Code ...
}


<br>
*<big><u>With Application Class</u></big>
:若APP專案有自己的Application class,可將追蹤碼放在此class,由於Application的執行時間是在Activity啟動前,因此會比Without Application Class更早回報,但是<span style="color:red;">如果APP是透過Back鍵關掉的話,由於Application還會留在系統一小段時間, 導致使用者短時間內再次打開APP時並不會觸發回報</span>, 必須等待系統將其回收或是使用者自行把APP刷掉(在桌面點選Menu Button, 再將APP上滑關閉), Application才算是真正結束,程式碼如下:<br>
<b>&lt;MyCustomApplication.java&gt;</b>
public class MyCustomApplication extends Application {
    private static final String PROFILE_ID = "<b><Your Profile ID></b>";
    private static final boolean isDebug = false;
    // Called when the application is starting, before any other application objects have been created.
    // Overriding this method is totally optional!
    @Override
    public void onCreate() {
        super.onCreate();
        // Initial
        IDGraphTracker.getInstance().init(this, PROFILE_ID, isDebug);
        // Send Tracking Log
        IDGraphTracker.getInstance().reportTrackLog();
    }
    Other Code ...
}


<b>&lt;AndroidManifest.xml&gt;</b>
<application
    android:name="<b>.MyCustomApplication</b>"
    android:allowBackup="true"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
 
    Other Code ...
 
</application>


<br>
<br>
<br>
<br>
[[IDGraph_Android_SDK_Developer_Guide|回IDGraph Android SDK首頁]]
[[IDGraph_Android_SDK_Developer_Guide|回IDGraph Android SDK首頁]]

於 2024年10月23日 (三) 06:20 的最新修訂

在回報Log前,必須讓SDK進行初始化,您需要執行下列函式

    IDGraphTracker.getInstance().init(this, PROFILE_ID, isDebug)
第一個參數為Context
第二個參數請填入你的Profile ID (可向您的TAmedia窗口詢問)
第三個為boolean值,設為true時,每次回報會出現Toast訊息框以確認回報是否成功


若要進行回報需呼叫下列函式,extraParams為額外參數(非必要),如果開發者知道目前經緯度,可透過此參數帶入

    val extraParams = listOf(lon, lat)
    IDGraphTracker.getInstance().reportTrackLog(extraParams)


上述提及的函式,可參考下列方式加入您的專案

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)

        setContent {

            var latitude by remember { mutableStateOf("") }
            var longitude by remember { mutableStateOf("") }

            MainScreen(
                onRequestLocation = { requestLocationPermission { lon, lat ->
                    latitude = lat
                    longitude = lon
                } },
                onReportLocation = { lon, lat ->
                    val extraParams = listOf(lon, lat)
                    IDGraphTracker.getInstance().init(this, PROFILE_ID, false)
                    IDGraphTracker.getInstance().reportTrackLog(extraParams)
                },
                latitude = latitude,
                longitude = longitude
            )
        }
    }




回IDGraph Android SDK首頁